From 48f781fb6e61539ba9d17efcfd9f9e38245cf6c0 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Wed, 23 May 2018 16:42:38 -0400 Subject: Refactor package structure --- CSMath/src/bezier/geom/transform/TDHTransform.java | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 CSMath/src/bezier/geom/transform/TDHTransform.java (limited to 'CSMath/src/bezier/geom/transform/TDHTransform.java') diff --git a/CSMath/src/bezier/geom/transform/TDHTransform.java b/CSMath/src/bezier/geom/transform/TDHTransform.java new file mode 100644 index 0000000..cd35caf --- /dev/null +++ b/CSMath/src/bezier/geom/transform/TDHTransform.java @@ -0,0 +1,54 @@ +package bezier.geom.transform; + +import bezier.geom.TDHPoint; + +/** + * Transformation applicable to TDHPoints. + * + * @author bjculkin + * + */ +@FunctionalInterface +public interface TDHTransform { + /** + * Get the type of this transform. + * + * Unknown transformations are assumed to be identity transforms. + * + * @return The type of this transform. + */ + default TDHTransformType type() { + return TDHTransformType.IDENTITY; + } + + /** + * Get the matrix representation of the transform. + * + * Unknown transformations are assumed to be identity transforms. + * + * @return The matrix representation of the transform. + */ + default double[][] matrix() { + return new double[][] { new double[] { 1, 0, 0 }, new double[] { 0, 1, 0 }, new double[] { 0, 0, 1 } }; + } + + /** + * Get the inverse of the transform. + * + * Unknown transformations are assumed to be identity transforms. + * + * @return The inverse the transform. + */ + default TDHTransform invert() { + return new TDHIdentity(); + } + + /** + * Apply the transform to a point. + * + * @param punkt + * The point to transform. + * @return A transformed version of the point. + */ + TDHPoint transform(TDHPoint punkt); +} \ No newline at end of file -- cgit v1.2.3