private void surfaceNormalAt(Point3d pointToCheck, Vector3d normalToPack) { normalToPack.set(pointToCheck); GeometryTools.normalizeSafelyZUp(normalToPack); }
@ContinuousIntegrationTest(estimatedDuration = 0.0) @Test(timeout = 30000) public void testNormalizeSafeZUp() throws Exception { Vector3D actualVector; Vector3D expectedVector = new Vector3D(); Random random = new Random(1176L); for (int i = 0; i < ITERATIONS; i++) { actualVector = RandomGeometry.nextVector3D(random, RandomNumbers.nextDouble(random, Epsilons.ONE_TRILLIONTH, 10.0)); expectedVector.setAndNormalize(actualVector); GeometryTools.normalizeSafelyZUp(actualVector); EuclidCoreTestTools.assertTuple3DEquals(expectedVector, actualVector, Epsilons.ONE_TRILLIONTH); actualVector = RandomGeometry.nextVector3D(random, 0.999 * Epsilons.ONE_TRILLIONTH); expectedVector.set(0.0, 0.0, 1.0); GeometryTools.normalizeSafelyZUp(actualVector); EuclidCoreTestTools.assertTuple3DEquals(expectedVector, actualVector, Epsilons.ONE_TRILLIONTH); actualVector = new Vector3D(); expectedVector.set(0.0, 0.0, 1.0); GeometryTools.normalizeSafelyZUp(actualVector); EuclidCoreTestTools.assertTuple3DEquals(expectedVector, actualVector, Epsilons.ONE_TRILLIONTH); } }