As you can see, all points but one have an increase in accuracy. This is
still not accurate enough in my opinion, but is a step in the right direction.
+
+
+MORE NOTES:
+===========
+
+I attempted to improve upon revision 371 by streamlining the code in
+BaseWindingForPlane() some more. Those attempts were committed as r375.
+After revision 375:
+
+ (6784.09375000 16241.01757812 -1722.04687500)
+ (6144.00000000 16082.99414062 -1443.00390625)
+ (6144.00000000 16122.00000000 -1424.00097656)
+
+Revision 375 has since been reverted (undone) because of the loss in
+accuracy.
vright[2] = normal[1];
break;
}
- // NOTE: vright is NOT a unit vector at this point.
- VectorSetLength(vright, MAX_WORLD_COORD * 2, vright);
CrossProduct(normal, vright, vup);
+
+ // IMPORTANT NOTE: vright and vup are NOT unit vectors at this point.
+ // However, normal, vup, and vright are pairwise perpendicular.
+
+ VectorSetLength(vup, MAX_WORLD_COORD * 2, vup);
+ VectorSetLength(vright, MAX_WORLD_COORD * 2, vright);
VectorScale(normal, dist, org);
w = AllocWinding(4);