John B. Matthews wrote:
In article <cXu0m.36322$Ig.15935@newsfe14.iad>,
Daniel Pitts <newsgroup.spamfilter@virtualinfinity.net> wrote:
Thorsten Kiefer wrote:
I wrote normal calculator for IndexTriangleFanStrip, but it calculates
partially wrong normals, can anyone help me with that ?
[...]
Please provide an SSCCE. Actually, it would be even better in this
case to provide a Unit Test, complete with assertEqual statements
that show what values you are expecting, but not getting.
Either way, it must be stand-alone compilable and easily runnable (I
consider JUnit tests to be easily runnable, as well as standard
"main" methods)
I'd be interested, too. Here's an example using the JScience library:
<http://jscience.org/api/index.html>
<code>
import junit.framework.Assert;
import org.jscience.mathematics.vector.Float64Vector;
import org.junit.Test;
public class VectorCrossTest {
private static final double EPSILON = 1e-15;
@Test
public void testMain() {
System.out.println("testing...");
Float64Vector v1 = Float64Vector.valueOf(1, 0, 0);
Float64Vector v2 = Float64Vector.valueOf(0, 1, 0);
check(v1.cross(v2), 0, 0, 1);
check(v2.cross(v1), 0, 0, -1);
check(v1.cross(v2).cross(v1), 0, 1, 0);
}
private void check (Float64Vector v, double... values) {
System.out.println(v);
for (int i = 0 ; i < v.getDimension(); i++ ) {
Assert.assertEquals(v.getValue(i), values[i], EPSILON);
}
}
}
</code>
OK I think i found the problem, I'm confused.
per Triangle Fan -> 6 Fans (6 polys).