@Test public void testSetToZero() { Random random = new Random(621541L); T quaternion = createRandomTuple(random); quaternion.setToZero(); T zeroQ = createTuple(0.0, 0.0, 0.0, 1.0); EuclidCoreTestTools.assertQuaternionEquals(quaternion, zeroQ, getEpsilon()); }
@Test public void testIsUnitary() { Random random = new Random(65445L); for (int i = 0; i < ITERATIONS; i++) { T q1 = createRandomTuple(random); assertTrue(q1.isUnitary(getEpsilon())); // Quaternion should have norm = 1 T q2 = createRandomTuple(random); q1 = createTuple(q2.getX(), q2.getY(), q2.getZ(), q2.getS()); assertTrue(q1.isUnitary(getEpsilon())); double delta = 6.0 * Math.sqrt(getEpsilon()); q1 = createTuple(delta + q2.getX(), q2.getY(), q2.getZ(), q2.getS()); assertFalse(q1.isUnitary(getEpsilon())); q1 = createTuple(q2.getX(), delta + q2.getY(), q2.getZ(), q2.getS()); assertFalse(q1.isUnitary(getEpsilon())); q1 = createTuple(q2.getX(), q2.getY(), delta + q2.getZ(), q2.getS()); assertFalse(q1.isUnitary(getEpsilon())); q1 = createTuple(q2.getX(), q2.getY(), q2.getZ(), delta + q2.getS()); assertFalse(q1.isUnitary(getEpsilon())); } }
quaternionT.preMultiply(quaternionA); quaternionB = createTuple(quaternionT.getX(), quaternionT.getY(), quaternionT.getZ(), quaternionT.getS()); quaternionT.preMultiply(quaternionA); quaternionB = createTuple(quaternionT.getX(), quaternionT.getY(), quaternionT.getZ(), quaternionT.getS()); quaternionT.preMultiply(quaternionA); quaternionB = createTuple(quaternionT.getX(), quaternionT.getY(), quaternionT.getZ(), quaternionT.getS()); quaternionT.preMultiply(quaternionA); quaternionB = createTuple(quaternionT.getX(), quaternionT.getY(), quaternionT.getZ(), quaternionT.getS());
double zOriginal = signZ * original.getZ(); double sOriginal = signS * original.getS(); tuple1 = createTuple(xOriginal, yOriginal, zOriginal, sOriginal);
float qz = (float) Math.sin(0.5 * theta); float qs = (float) Math.cos(0.5 * theta); quaternion = createTuple(0.0f, 0.0f, qz, qs); float qz = (float) Math.sin(0.5 * theta); float qs = (float) Math.cos(0.5 * theta); quaternion = createTuple(0.0f, 0.0f, qz, qs);
float qz = (float) Math.sin(0.5 * theta); float qs = (float) Math.cos(0.5 * theta); quaternion = createTuple(0.0f, 0.0f, qz, qs); float qz = (float) Math.sin(0.5 * theta); float qs = (float) Math.cos(0.5 * theta); quaternion = createTuple(0.0f, 0.0f, qz, qs);