public void translate(double x, double y, double z) { Vector3D translation = new Vector3D(x, y, z); transform.transform(translation); transform.addTranslation(translation); }
@Test public void testTransformWithQuaternion() throws Exception { Random random = new Random(34534L); AffineTransform transform = EuclidCoreRandomTools.nextAffineTransform(random); Quaternion quaternionOriginal = EuclidCoreRandomTools.nextQuaternion(random); Quaternion quaternionExpected = new Quaternion(); Quaternion quaternionActual = new Quaternion(); transform.getRotation(quaternionExpected); quaternionExpected.multiply(quaternionOriginal); transform.transform(quaternionOriginal, quaternionActual); EuclidCoreTestTools.assertQuaternionEquals(quaternionExpected, quaternionActual, EPS); quaternionActual.set(quaternionOriginal); transform.transform(quaternionActual); EuclidCoreTestTools.assertQuaternionEquals(quaternionExpected, quaternionActual, EPS); }
@Test public void testTransformWithMatrix3D() throws Exception { Random random = new Random(4534L); AffineTransform transform = EuclidCoreRandomTools.nextAffineTransform(random); Matrix3D matrixOriginal = EuclidCoreRandomTools.nextMatrix3D(random); Matrix3D matrixExpected = new Matrix3D(); Matrix3D matrixActual = new Matrix3D(); { Matrix3D m = new Matrix3D(); transform.getRotationScale(m); matrixExpected.set(matrixOriginal); matrixExpected.preMultiply(m); matrixExpected.multiplyInvertOther(m); } transform.transform(matrixOriginal, matrixActual); EuclidCoreTestTools.assertMatrix3DEquals(matrixExpected, matrixActual, EPS); matrixActual.set(matrixOriginal); transform.transform(matrixActual); EuclidCoreTestTools.assertMatrix3DEquals(matrixExpected, matrixActual, EPS); }
@Test public void testTransformWithRotationMatrix() throws Exception { Random random = new Random(2342L); AffineTransform transform = EuclidCoreRandomTools.nextAffineTransform(random); RotationMatrix matrixOriginal = EuclidCoreRandomTools.nextRotationMatrix(random); RotationMatrix matrixExpected = new RotationMatrix(); RotationMatrix matrixActual = new RotationMatrix(); transform.getRotation(matrixExpected); matrixExpected.multiply(matrixOriginal); matrixActual.set(matrixOriginal); transform.transform(matrixActual); EuclidCoreTestTools.assertMatrix3DEquals(matrixExpected, matrixActual, EPS); }
@Test public void testTransformWithQuaternionBasedTransform() throws Exception { Random random = new Random(23423L); AffineTransform transform = EuclidCoreRandomTools.nextAffineTransform(random); RigidBodyTransform originalRigidBodyTransform = EuclidCoreRandomTools.nextRigidBodyTransform(random); RigidBodyTransform expectedRigidBodyTransform = new RigidBodyTransform(); QuaternionBasedTransform original = new QuaternionBasedTransform(originalRigidBodyTransform); QuaternionBasedTransform expected = new QuaternionBasedTransform(); QuaternionBasedTransform actual = new QuaternionBasedTransform(); transform.transform(originalRigidBodyTransform, expectedRigidBodyTransform); expected.set(expectedRigidBodyTransform); transform.transform(original, actual); EuclidCoreTestTools.assertQuaternionBasedTransformEquals(expected, actual, EPS); actual.set(original); transform.transform(actual); EuclidCoreTestTools.assertQuaternionBasedTransformEquals(expected, actual, EPS); RigidBodyTransform inverse = new RigidBodyTransform(); transform.getRigidBodyTransform(inverse); inverse.invert(); inverse.transform(original, expected); transform.inverseTransform(original, actual); EuclidCoreTestTools.assertQuaternionBasedTransformEquals(expected, actual, EPS); actual.set(original); transform.inverseTransform(actual); EuclidCoreTestTools.assertQuaternionBasedTransformEquals(expected, actual, EPS); }
transfom2D.transform(point); pointExpected.set(point.getX(), point.getY()); transfom2D.transform(pointActual); EuclidCoreTestTools.assertTuple2DEquals(pointExpected, pointActual, EPS); transfom2D.transform(point); pointExpected.set(point.getX(), point.getY()); transfom2D.transform(pointActual, true); EuclidCoreTestTools.assertTuple2DEquals(pointExpected, pointActual, EPS); transfom2D.transform(point); pointExpected.set(point.getX(), point.getY()); transfom2D.transform(pointOriginal, pointActual); EuclidCoreTestTools.assertTuple2DEquals(pointExpected, pointActual, EPS); transfom2D.transform(point); pointExpected.set(point.getX(), point.getY()); transfom2D.transform(pointOriginal, pointActual, true); EuclidCoreTestTools.assertTuple2DEquals(pointExpected, pointActual, EPS); transfom2D.transform(vector); vectorExpected.set(vector.getX(), vector.getY()); transfom2D.transform(vectorActual); EuclidCoreTestTools.assertTuple2DEquals(vectorExpected, vectorActual, EPS);
@Test public void testTransformWithOtherRigidBodyTransform() throws Exception { Random random = new Random(23423L); AffineTransform transform = EuclidCoreRandomTools.nextAffineTransform(random); RigidBodyTransform original = EuclidCoreRandomTools.nextRigidBodyTransform(random); RigidBodyTransform expected = new RigidBodyTransform(); RigidBodyTransform actual = new RigidBodyTransform(); transform.getRigidBodyTransform(expected); expected.multiply(original); transform.transform(original, actual); EuclidCoreTestTools.assertRigidBodyTransformEquals(expected, actual, EPS); actual.set(original); transform.transform(actual); EuclidCoreTestTools.assertRigidBodyTransformEquals(expected, actual, EPS); RigidBodyTransform inverse = new RigidBodyTransform(); transform.getRigidBodyTransform(inverse); inverse.invert(); inverse.transform(original, expected); transform.inverseTransform(original, actual); EuclidCoreTestTools.assertRigidBodyTransformEquals(expected, actual, EPS); actual.set(original); transform.inverseTransform(actual); EuclidCoreTestTools.assertRigidBodyTransformEquals(expected, actual, EPS); }
@Test public void testTransformWithAffineTransform() throws Exception { Random random = new Random(23423L); AffineTransform transform = EuclidCoreRandomTools.nextAffineTransform(random); RigidBodyTransform originalRigidBodyTransform = EuclidCoreRandomTools.nextRigidBodyTransform(random); RigidBodyTransform expectedRigidBodyTransform = new RigidBodyTransform(); Vector3D scale = EuclidCoreRandomTools.nextVector3D(random, 0.0, 10.0); AffineTransform original = new AffineTransform(originalRigidBodyTransform); original.setScale(scale); AffineTransform expected = new AffineTransform(); AffineTransform actual = new AffineTransform(); transform.transform(originalRigidBodyTransform, expectedRigidBodyTransform); expected.set(expectedRigidBodyTransform); expected.setScale(scale); transform.transform(original, actual); EuclidCoreTestTools.assertAffineTransformEquals(expected, actual, EPS); actual.set(original); transform.transform(actual); EuclidCoreTestTools.assertAffineTransformEquals(expected, actual, EPS); RigidBodyTransform inverse = new RigidBodyTransform(); transform.getRigidBodyTransform(inverse); inverse.invert(); inverse.transform(original, expected); transform.inverseTransform(original, actual); EuclidCoreTestTools.assertAffineTransformEquals(expected, actual, EPS); actual.set(original); transform.inverseTransform(actual); EuclidCoreTestTools.assertAffineTransformEquals(expected, actual, EPS); }
@Test public void testTransformWithVector4D() throws Exception { Random random = new Random(5634L); AffineTransform transform = EuclidCoreRandomTools.nextAffineTransform(random); Vector4D vectorOriginal = EuclidCoreRandomTools.nextVector4D(random); Vector4D vectorExpected = new Vector4D(); Vector4D vectorActual = new Vector4D(); Vector3D vector3D = new Vector3D(vectorOriginal.getX(), vectorOriginal.getY(), vectorOriginal.getZ()); transform.transform(vector3D); vectorExpected.set(vector3D); vectorExpected.setS(vectorOriginal.getS()); vectorExpected.addX(vectorExpected.getS() * transform.getM03()); vectorExpected.addY(vectorExpected.getS() * transform.getM13()); vectorExpected.addZ(vectorExpected.getS() * transform.getM23()); transform.transform(vectorOriginal, vectorActual); EuclidCoreTestTools.assertTuple4DEquals(vectorExpected, vectorActual, EPS); vectorActual.set(vectorOriginal); transform.transform(vectorActual); EuclidCoreTestTools.assertTuple4DEquals(vectorExpected, vectorActual, EPS); // Try with dense-matrix DenseMatrix64F transformDenseMatrix = new DenseMatrix64F(4, 4); transform.get(transformDenseMatrix); DenseMatrix64F vectorOriginalDenseMatrix = new DenseMatrix64F(4, 1); vectorOriginal.get(vectorOriginalDenseMatrix); DenseMatrix64F vectorTransformedDenseMatrix = new DenseMatrix64F(4, 1); CommonOps.mult(transformDenseMatrix, vectorOriginalDenseMatrix, vectorTransformedDenseMatrix); vectorExpected.set(vectorTransformedDenseMatrix); EuclidCoreTestTools.assertTuple4DEquals(vectorExpected, vectorActual, EPS); }
ejmlPoint.set(3, 0, 1.0); transform.transform(point); CommonOps.mult(matrix, ejmlPoint, ejmlTransformedPoint); ejmlPoint.set(3, 0, 1.0); transform.transform(point, pointTransformed); CommonOps.mult(matrix, ejmlPoint, ejmlTransformedPoint); vector.get(ejmlVector); transform.transform(vector); CommonOps.mult(matrix, ejmlVector, ejmlTransformedVector); vector.get(ejmlVector); transform.transform(vector, vectorTransformed); CommonOps.mult(matrix, ejmlVector, ejmlTransformedVector);
Point3DReadOnly pointOriginal = EuclidCoreRandomTools.nextPoint3D(random, 10.0); Point3DBasics pointExpected = new Point3D(); transform.transform(pointOriginal, pointExpected); Vector3DReadOnly vectorOriginal = EuclidCoreRandomTools.nextVector3D(random, -10.0, 10.0); Vector3DBasics vectorExpected = new Vector3D(); transform.transform(vectorOriginal, vectorExpected);
private void plotXYHeatmap() { DataEntry xDataEntry = dataEntryHolder.getEntry(x); DataEntry yDataEntry = dataEntryHolder.getEntry(y); double discreteX = 0.09; double discreteY = 0.3; for (int i = graphIndicesHolder.getInPoint(); i < graphIndicesHolder.getIndex(); i++) { double roundedX = MathTools.roundToPrecision(xDataEntry.getData()[i], discreteX); double roundedY = MathTools.roundToPrecision(yDataEntry.getData()[i], discreteY); plotPencil.set(roundedX, roundedY); heatmap.adjustOrPutValue(plotPencil, 1, 1); int heat = heatmap.get(plotPencil); adjustViewRange(plotPencil.getX(), plotPencil.getY()); transformToCanvasSpace.transform(plotPencil); graphicsContext.setFill(getHeatColor(heat)); fillRect(plotPencil.getX(), plotPencil.getY(), discreteX * transformToCanvasSpace.getScaleX(), discreteY * transformToCanvasSpace.getScaleY()); } heatmap.clear(); }
transform.transform(expected); actual.set(original); actual.applyTransform(transform);
transform.transform(expected); actual.set(original); actual.applyTransform(transform);
transform.transform(expected); actual.set(original); actual.applyTransform(transform);
transform.transform(expected); actual.set(original); actual.applyTransform(transform);
transformToCanvasSpace.transform(gridCenter); graphicsContext.strokeLine(0, gridCenter.getY(), javaFXPanel.getWidth(), gridCenter.getY()); graphicsContext.strokeLine(gridCenter.getX(), 0.0, gridCenter.getX(), javaFXPanel.getHeight());