From dcb6c2159446135a142cad41eec185bb24c45bfb Mon Sep 17 00:00:00 2001 From: bjculkin Date: Wed, 11 Apr 2018 15:29:25 -0400 Subject: Split #9 into one class/file --- CSMath/src/bezier/transforms/TDHTransform.java | 54 ++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 CSMath/src/bezier/transforms/TDHTransform.java (limited to 'CSMath/src/bezier/transforms/TDHTransform.java') diff --git a/CSMath/src/bezier/transforms/TDHTransform.java b/CSMath/src/bezier/transforms/TDHTransform.java new file mode 100644 index 0000000..48f60a5 --- /dev/null +++ b/CSMath/src/bezier/transforms/TDHTransform.java @@ -0,0 +1,54 @@ +package bezier.transforms; + +import bezier.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