From 5fdb8554aa59432924c6cf2cf4e8c178c5856deb Mon Sep 17 00:00:00 2001 From: student Date: Wed, 11 Apr 2018 17:06:20 -0400 Subject: Update --- CSMath/src/bezier/transforms/TDHCombination.java | 2 +- CSMath/src/bezier/transforms/TDHIdentity.java | 2 +- .../src/bezier/transforms/TDHLineReflection.java | 2 +- CSMath/src/bezier/transforms/TDHMatrix.java | 40 ---------------------- .../src/bezier/transforms/TDHMatrixTransform.java | 32 +++++++++++++++++ CSMath/src/bezier/transforms/TDHPointRotation.java | 2 +- CSMath/src/bezier/transforms/TDHRotation.java | 2 +- CSMath/src/bezier/transforms/TDHScale.java | 2 +- CSMath/src/bezier/transforms/TDHShear.java | 2 +- CSMath/src/bezier/transforms/TDHTransform.java | 2 +- CSMath/src/bezier/transforms/TDHTranslate.java | 2 +- .../src/bezier/transforms/TDHXAxisReflection.java | 2 +- .../src/bezier/transforms/TDHYAxisReflection.java | 2 +- 13 files changed, 43 insertions(+), 51 deletions(-) delete mode 100644 CSMath/src/bezier/transforms/TDHMatrix.java create mode 100644 CSMath/src/bezier/transforms/TDHMatrixTransform.java (limited to 'CSMath/src/bezier/transforms') diff --git a/CSMath/src/bezier/transforms/TDHCombination.java b/CSMath/src/bezier/transforms/TDHCombination.java index 4f9fe10..83b3858 100644 --- a/CSMath/src/bezier/transforms/TDHCombination.java +++ b/CSMath/src/bezier/transforms/TDHCombination.java @@ -3,7 +3,7 @@ package bezier.transforms; import java.util.ArrayList; import java.util.List; -import bezier.TDHPoint; +import bezier.geom.TDHPoint; public class TDHCombination implements TDHTransform { public final List forms; diff --git a/CSMath/src/bezier/transforms/TDHIdentity.java b/CSMath/src/bezier/transforms/TDHIdentity.java index c0ae7c2..d1b55d0 100644 --- a/CSMath/src/bezier/transforms/TDHIdentity.java +++ b/CSMath/src/bezier/transforms/TDHIdentity.java @@ -1,6 +1,6 @@ package bezier.transforms; -import bezier.TDHPoint; +import bezier.geom.TDHPoint; /** * A transform that does nothing. diff --git a/CSMath/src/bezier/transforms/TDHLineReflection.java b/CSMath/src/bezier/transforms/TDHLineReflection.java index 1cf4a48..db50fd5 100644 --- a/CSMath/src/bezier/transforms/TDHLineReflection.java +++ b/CSMath/src/bezier/transforms/TDHLineReflection.java @@ -1,6 +1,6 @@ package bezier.transforms; -import bezier.TDHPoint; +import bezier.geom.TDHPoint; public class TDHLineReflection implements TDHTransform { public final double a; diff --git a/CSMath/src/bezier/transforms/TDHMatrix.java b/CSMath/src/bezier/transforms/TDHMatrix.java deleted file mode 100644 index b4e5bb0..0000000 --- a/CSMath/src/bezier/transforms/TDHMatrix.java +++ /dev/null @@ -1,40 +0,0 @@ -package bezier.transforms; - -import bezier.TDHPoint; - -public class TDHMatrix implements TDHTransform { - public final double[][] mat; - - public TDHMatrix(double[][] mat) { - super(); - this.mat = mat; - } - - @Override - public TDHTransformType type() { - return TDHTransformType.MATRIX; - } - - @Override - public TDHPoint transform(TDHPoint punkt) { - double x = (punkt.x * mat[0][0]) + (punkt.y * mat[1][0]) + (punkt.z * mat[2][0]); - double y = (punkt.x * mat[0][1]) + (punkt.y * mat[1][1]) + (punkt.z * mat[2][1]); - double z = (punkt.x * mat[0][2]) + (punkt.y * mat[1][2]) + (punkt.z * mat[2][2]); - - return new TDHPoint(x, y, z); - } - - public TDHTransform then(double[][] matr) { - double[][] ret = new double[3][3]; - - for (int i = 0; i < 3; i++) { - for (int j = 0; j < 3; j++) { - for (int k = 0; k < 3; k++) { - ret[i][j] += mat[i][k] * matr[k][j]; - } - } - } - - return new TDHMatrix(ret); - } -} \ No newline at end of file diff --git a/CSMath/src/bezier/transforms/TDHMatrixTransform.java b/CSMath/src/bezier/transforms/TDHMatrixTransform.java new file mode 100644 index 0000000..6cfc3cc --- /dev/null +++ b/CSMath/src/bezier/transforms/TDHMatrixTransform.java @@ -0,0 +1,32 @@ +package bezier.transforms; + +import bezier.geom.Matrix; +import bezier.geom.TDHPoint; + +public class TDHMatrixTransform implements TDHTransform { + public final Matrix mat; + + public TDHMatrixTransform(Matrix mat) { + this.mat = mat; + } + + public TDHMatrixTransform(double[][] mat) { + this.mat = new Matrix(mat); + } + + @Override + public TDHTransformType type() { + return TDHTransformType.MATRIX; + } + + @Override + public TDHPoint transform(TDHPoint punkt) { + double[] mult = mat.scalarMultiply(new double[] { punkt.x, punkt.y, punkt.z }); + + return new TDHPoint(mult[0], mult[1], mult[2]); + } + + public TDHTransform then(TDHMatrixTransform trans) { + return new TDHMatrixTransform(mat.multiply(trans.mat)); + } +} \ No newline at end of file diff --git a/CSMath/src/bezier/transforms/TDHPointRotation.java b/CSMath/src/bezier/transforms/TDHPointRotation.java index 30f1854..5b8736c 100644 --- a/CSMath/src/bezier/transforms/TDHPointRotation.java +++ b/CSMath/src/bezier/transforms/TDHPointRotation.java @@ -1,6 +1,6 @@ package bezier.transforms; -import bezier.TDHPoint; +import bezier.geom.TDHPoint; public class TDHPointRotation extends TDHRotation { public final double x0; diff --git a/CSMath/src/bezier/transforms/TDHRotation.java b/CSMath/src/bezier/transforms/TDHRotation.java index b2255d4..64a6c2c 100644 --- a/CSMath/src/bezier/transforms/TDHRotation.java +++ b/CSMath/src/bezier/transforms/TDHRotation.java @@ -1,6 +1,6 @@ package bezier.transforms; -import bezier.TDHPoint; +import bezier.geom.TDHPoint; public class TDHRotation implements TDHTransform { public final double theta; diff --git a/CSMath/src/bezier/transforms/TDHScale.java b/CSMath/src/bezier/transforms/TDHScale.java index 09ab237..5cfd300 100644 --- a/CSMath/src/bezier/transforms/TDHScale.java +++ b/CSMath/src/bezier/transforms/TDHScale.java @@ -1,6 +1,6 @@ package bezier.transforms; -import bezier.TDHPoint; +import bezier.geom.TDHPoint; /** * Transform that does coordinate scaling. diff --git a/CSMath/src/bezier/transforms/TDHShear.java b/CSMath/src/bezier/transforms/TDHShear.java index 40b3814..7dbb4c5 100644 --- a/CSMath/src/bezier/transforms/TDHShear.java +++ b/CSMath/src/bezier/transforms/TDHShear.java @@ -1,6 +1,6 @@ package bezier.transforms; -import bezier.TDHPoint; +import bezier.geom.TDHPoint; public class TDHShear implements TDHTransform { public final double shx; diff --git a/CSMath/src/bezier/transforms/TDHTransform.java b/CSMath/src/bezier/transforms/TDHTransform.java index 48f60a5..3b8c52e 100644 --- a/CSMath/src/bezier/transforms/TDHTransform.java +++ b/CSMath/src/bezier/transforms/TDHTransform.java @@ -1,6 +1,6 @@ package bezier.transforms; -import bezier.TDHPoint; +import bezier.geom.TDHPoint; /** * Transformation applicable to TDHPoints. diff --git a/CSMath/src/bezier/transforms/TDHTranslate.java b/CSMath/src/bezier/transforms/TDHTranslate.java index eb5cfa9..3d2afe9 100644 --- a/CSMath/src/bezier/transforms/TDHTranslate.java +++ b/CSMath/src/bezier/transforms/TDHTranslate.java @@ -1,6 +1,6 @@ package bezier.transforms; -import bezier.TDHPoint; +import bezier.geom.TDHPoint; /** * A transform that does coordinate translation. diff --git a/CSMath/src/bezier/transforms/TDHXAxisReflection.java b/CSMath/src/bezier/transforms/TDHXAxisReflection.java index 5eea8cd..1969b9c 100644 --- a/CSMath/src/bezier/transforms/TDHXAxisReflection.java +++ b/CSMath/src/bezier/transforms/TDHXAxisReflection.java @@ -1,6 +1,6 @@ package bezier.transforms; -import bezier.TDHPoint; +import bezier.geom.TDHPoint; public class TDHXAxisReflection implements TDHTransform { @Override diff --git a/CSMath/src/bezier/transforms/TDHYAxisReflection.java b/CSMath/src/bezier/transforms/TDHYAxisReflection.java index f302fe4..eb462ba 100644 --- a/CSMath/src/bezier/transforms/TDHYAxisReflection.java +++ b/CSMath/src/bezier/transforms/TDHYAxisReflection.java @@ -1,6 +1,6 @@ package bezier.transforms; -import bezier.TDHPoint; +import bezier.geom.TDHPoint; public class TDHYAxisReflection implements TDHTransform { @Override -- cgit v1.2.3