} else if (Math.abs(getM11() - comp.getM11()) > Matrix3.ALLOWED_DEVIANCE) { return false; } else if (Math.abs(getM12() - comp.getM12()) > Matrix3.ALLOWED_DEVIANCE) { return false; } else if (Math.abs(getM20() - comp.getM20()) > Matrix3.ALLOWED_DEVIANCE) {
} else if (Math.abs(getM11() - comp.getM11()) > Matrix3.ALLOWED_DEVIANCE) { return false; } else if (Math.abs(getM12() - comp.getM12()) > Matrix3.ALLOWED_DEVIANCE) { return false; } else if (Math.abs(getM20() - comp.getM20()) > Matrix3.ALLOWED_DEVIANCE) {
transMatrix.setValue(1, 0, Math.abs(transMatrix.getM10())); transMatrix.setValue(1, 1, Math.abs(transMatrix.getM11())); transMatrix.setValue(1, 2, Math.abs(transMatrix.getM12())); transMatrix.setValue(2, 0, Math.abs(transMatrix.getM20())); transMatrix.setValue(2, 1, Math.abs(transMatrix.getM21()));
transMatrix.setValue(1, 0, Math.abs(transMatrix.getM10())); transMatrix.setValue(1, 1, Math.abs(transMatrix.getM11())); transMatrix.setValue(1, 2, Math.abs(transMatrix.getM12())); transMatrix.setValue(2, 0, Math.abs(transMatrix.getM20())); transMatrix.setValue(2, 1, Math.abs(transMatrix.getM21()));
/** * Apply the rotation matrix to a given vector representing a particle velocity. * * @param pSpeed * the velocity vector to be modified. */ protected void rotateVectorSpeed(final Vector3 pSpeed) { final double x = pSpeed.getX(), y = pSpeed.getY(), z = pSpeed.getZ(); pSpeed.setX(-1 * ((_rotMatrix.getM00() * x) + (_rotMatrix.getM10() * y) + (_rotMatrix.getM20() * z))); pSpeed.setY((_rotMatrix.getM01() * x) + (_rotMatrix.getM11() * y) + (_rotMatrix.getM21() * z)); pSpeed.setZ(-1 * ((_rotMatrix.getM02() * x) + (_rotMatrix.getM12() * y) + (_rotMatrix.getM22() * z))); }
/** * Apply the rotation matrix to a given vector representing a particle velocity. * * @param pSpeed * the velocity vector to be modified. */ protected void rotateVectorSpeed(final Vector3 pSpeed) { final double x = pSpeed.getX(), y = pSpeed.getY(), z = pSpeed.getZ(); pSpeed.setX(-1 * ((_rotMatrix.getM00() * x) + (_rotMatrix.getM10() * y) + (_rotMatrix.getM20() * z))); pSpeed.setY((_rotMatrix.getM01() * x) + (_rotMatrix.getM11() * y) + (_rotMatrix.getM21() * z)); pSpeed.setZ(-1 * ((_rotMatrix.getM02() * x) + (_rotMatrix.getM12() * y) + (_rotMatrix.getM22() * z))); }
} else if (getM11() != comp.getM11()) { return false; } else if (getM12() != comp.getM12()) { return false; } else if (getM20() != comp.getM20()) {
} else if (getM11() != comp.getM11()) { return false; } else if (getM12() != comp.getM12()) { return false; } else if (getM20() != comp.getM20()) {
@Test public void testFromArray() { final double[] values = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }; final Matrix3 mat3A = new Matrix3(); // row major mat3A.fromArray(values); assertTrue(0 == mat3A.getM00()); assertTrue(1 == mat3A.getM01()); assertTrue(2 == mat3A.getM02()); assertTrue(3 == mat3A.getM10()); assertTrue(4 == mat3A.getM11()); assertTrue(5 == mat3A.getM12()); assertTrue(6 == mat3A.getM20()); assertTrue(7 == mat3A.getM21()); assertTrue(8 == mat3A.getM22()); // column major mat3A.setIdentity(); mat3A.fromArray(values, false); assertTrue(0 == mat3A.getM00()); assertTrue(3 == mat3A.getM01()); assertTrue(6 == mat3A.getM02()); assertTrue(1 == mat3A.getM10()); assertTrue(4 == mat3A.getM11()); assertTrue(7 == mat3A.getM12()); assertTrue(2 == mat3A.getM20()); assertTrue(5 == mat3A.getM21()); assertTrue(8 == mat3A.getM22()); }
assertTrue(2.0 * 0.5 + 2.2 * 4 + 2.4 * 8 == result.getM10()); assertTrue(2.0 * 1 + 2.2 * 5 + 2.4 * 9 == result.getM11()); assertTrue(2.0 * 2 + 2.2 * 6 + 2.4 * 10 == result.getM12()); assertTrue(4.0 * 0.5 + 4.2 * 4 + 4.4 * 8 == result.getM20()); assertTrue(4.0 * 1 + 4.2 * 5 + 4.4 * 9 == result.getM21()); assertTrue(2.0 * 0.5 + 2.2 * 4 + 2.4 * 8 == mat3A.getM10()); assertTrue(2.0 * 1 + 2.2 * 5 + 2.4 * 9 == mat3A.getM11()); assertTrue(2.0 * 2 + 2.2 * 6 + 2.4 * 10 == mat3A.getM12()); assertTrue(4.0 * 0.5 + 4.2 * 4 + 4.4 * 8 == mat3A.getM20()); assertTrue(4.0 * 1 + 4.2 * 5 + 4.4 * 9 == mat3A.getM21());
assertTrue(3 == mat3A.getM10()); assertTrue(4 == mat3A.getM11()); assertTrue(5 == mat3A.getM12()); assertTrue(6 == mat3A.getM20()); assertTrue(7 == mat3A.getM21()); assertTrue(1 == mat3A.getM10()); assertTrue(4 == mat3A.getM11()); assertTrue(7 == mat3A.getM12()); assertTrue(2 == mat3A.getM20()); assertTrue(5 == mat3A.getM21()); assertTrue(3 == mat3A.getM10()); assertTrue(4 == mat3A.getM11()); assertTrue(5 == mat3A.getM12()); assertTrue(6 == mat3A.getM20()); assertTrue(7 == mat3A.getM21()); assertTrue(1 == mat3A.getM10()); assertTrue(4 == mat3A.getM11()); assertTrue(7 == mat3A.getM12()); assertTrue(2 == mat3A.getM20()); assertTrue(5 == mat3A.getM21());
assertTrue(1.0 == mat3A.getM10()); assertTrue(1.1 == mat3A.getM11()); assertTrue(1.2 == mat3A.getM12()); assertTrue(2.0 == mat3A.getM20()); assertTrue(2.1 == mat3A.getM21()); assertTrue(1.0 == mat3B.getM10()); assertTrue(1.1 == mat3B.getM11()); assertTrue(1.2 == mat3B.getM12()); assertTrue(2.0 == mat3B.getM20()); assertTrue(2.1 == mat3B.getM21()); assertTrue(1.0 == mat3C.getM10()); assertTrue(1.1 == mat3C.getM11()); assertTrue(1.2 == mat3C.getM12()); assertTrue(2.0 == mat3C.getM20()); assertTrue(2.1 == mat3C.getM21());