diff options
| author | student <student@localhost> | 2018-04-11 17:06:20 -0400 |
|---|---|---|
| committer | student <student@localhost> | 2018-04-11 17:06:20 -0400 |
| commit | 5fdb8554aa59432924c6cf2cf4e8c178c5856deb (patch) | |
| tree | 9fb86d7ed82887c883ba0bd9c462619a6f96499e /CSMath/src/bezier/transforms/TDHMatrixTransform.java | |
| parent | dcb6c2159446135a142cad41eec185bb24c45bfb (diff) | |
Update
Diffstat (limited to 'CSMath/src/bezier/transforms/TDHMatrixTransform.java')
| -rw-r--r-- | CSMath/src/bezier/transforms/TDHMatrixTransform.java | 32 |
1 files changed, 32 insertions, 0 deletions
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 |
