summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstudent <student@localhost>2018-04-11 17:06:20 -0400
committerstudent <student@localhost>2018-04-11 17:06:20 -0400
commit5fdb8554aa59432924c6cf2cf4e8c178c5856deb (patch)
tree9fb86d7ed82887c883ba0bd9c462619a6f96499e
parentdcb6c2159446135a142cad41eec185bb24c45bfb (diff)
Update
-rw-r--r--CSMath/src/bezier/BezierPanel.java3
-rw-r--r--CSMath/src/bezier/CulkinAsssignmentNine.java3
-rw-r--r--CSMath/src/bezier/CurveEditor.java2
-rw-r--r--CSMath/src/bezier/PointAdder.java2
-rw-r--r--CSMath/src/bezier/PointRemover.java3
-rw-r--r--CSMath/src/bezier/TDPointRenderer.java2
-rw-r--r--CSMath/src/bezier/geom/Bezier.java (renamed from CSMath/src/bezier/Bezier.java)2
-rw-r--r--CSMath/src/bezier/geom/BezierProperties.java (renamed from CSMath/src/bezier/BezierProperties.java)2
-rw-r--r--CSMath/src/bezier/geom/Matrix.java55
-rw-r--r--CSMath/src/bezier/geom/TDHPoint.java (renamed from CSMath/src/bezier/TDHPoint.java)2
-rw-r--r--CSMath/src/bezier/geom/TDPoint.java (renamed from CSMath/src/bezier/TDPoint.java)2
-rw-r--r--CSMath/src/bezier/transforms/TDHCombination.java2
-rw-r--r--CSMath/src/bezier/transforms/TDHIdentity.java2
-rw-r--r--CSMath/src/bezier/transforms/TDHLineReflection.java2
-rw-r--r--CSMath/src/bezier/transforms/TDHMatrix.java40
-rw-r--r--CSMath/src/bezier/transforms/TDHMatrixTransform.java32
-rw-r--r--CSMath/src/bezier/transforms/TDHPointRotation.java2
-rw-r--r--CSMath/src/bezier/transforms/TDHRotation.java2
-rw-r--r--CSMath/src/bezier/transforms/TDHScale.java2
-rw-r--r--CSMath/src/bezier/transforms/TDHShear.java2
-rw-r--r--CSMath/src/bezier/transforms/TDHTransform.java2
-rw-r--r--CSMath/src/bezier/transforms/TDHTranslate.java2
-rw-r--r--CSMath/src/bezier/transforms/TDHXAxisReflection.java2
-rw-r--r--CSMath/src/bezier/transforms/TDHYAxisReflection.java2
24 files changed, 117 insertions, 55 deletions
diff --git a/CSMath/src/bezier/BezierPanel.java b/CSMath/src/bezier/BezierPanel.java
index 86b4dd9..dfde4c8 100644
--- a/CSMath/src/bezier/BezierPanel.java
+++ b/CSMath/src/bezier/BezierPanel.java
@@ -9,6 +9,9 @@ import javax.swing.BorderFactory;
import javax.swing.JPanel;
import javax.swing.border.BevelBorder;
+import bezier.geom.Bezier;
+import bezier.geom.TDHPoint;
+import bezier.geom.TDPoint;
import bezier.transforms.TDHCombination;
import bezier.transforms.TDHTransform;
import bezier.transforms.TDHTranslate;
diff --git a/CSMath/src/bezier/CulkinAsssignmentNine.java b/CSMath/src/bezier/CulkinAsssignmentNine.java
index f566d0f..120b507 100644
--- a/CSMath/src/bezier/CulkinAsssignmentNine.java
+++ b/CSMath/src/bezier/CulkinAsssignmentNine.java
@@ -17,6 +17,9 @@ import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.BevelBorder;
+import bezier.geom.Bezier;
+import bezier.geom.TDPoint;
+
/**
* Main class for Bezier graphing.
*
diff --git a/CSMath/src/bezier/CurveEditor.java b/CSMath/src/bezier/CurveEditor.java
index 27a10d4..70f1352 100644
--- a/CSMath/src/bezier/CurveEditor.java
+++ b/CSMath/src/bezier/CurveEditor.java
@@ -14,6 +14,8 @@ import javax.swing.JTabbedPane;
import javax.swing.border.BevelBorder;
import javax.swing.border.TitledBorder;
+import bezier.geom.Bezier;
+
/*
* Do editing of curve properties.
*/
diff --git a/CSMath/src/bezier/PointAdder.java b/CSMath/src/bezier/PointAdder.java
index 269ec7b..2e421b5 100644
--- a/CSMath/src/bezier/PointAdder.java
+++ b/CSMath/src/bezier/PointAdder.java
@@ -13,6 +13,8 @@ import javax.swing.JFrame;
import javax.swing.JPanel;
import bezier.PointAdder.AddListener;
+import bezier.geom.Bezier;
+import bezier.geom.TDPoint;
/**
* Listener for adding points to a bezier curve.
diff --git a/CSMath/src/bezier/PointRemover.java b/CSMath/src/bezier/PointRemover.java
index 98cf8c0..1803e23 100644
--- a/CSMath/src/bezier/PointRemover.java
+++ b/CSMath/src/bezier/PointRemover.java
@@ -8,6 +8,9 @@ import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JOptionPane;
+import bezier.geom.Bezier;
+import bezier.geom.TDPoint;
+
/**
* Listener to remove points from a bezier curve.
*
diff --git a/CSMath/src/bezier/TDPointRenderer.java b/CSMath/src/bezier/TDPointRenderer.java
index 7e38889..a3413bf 100644
--- a/CSMath/src/bezier/TDPointRenderer.java
+++ b/CSMath/src/bezier/TDPointRenderer.java
@@ -6,6 +6,8 @@ import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
+import bezier.geom.TDPoint;
+
/**
* Renderer for TDPoints in JLists.
*
diff --git a/CSMath/src/bezier/Bezier.java b/CSMath/src/bezier/geom/Bezier.java
index fcc191c..46f1476 100644
--- a/CSMath/src/bezier/Bezier.java
+++ b/CSMath/src/bezier/geom/Bezier.java
@@ -1,4 +1,4 @@
-package bezier;
+package bezier.geom;
import java.util.ArrayList;
import java.util.List;
diff --git a/CSMath/src/bezier/BezierProperties.java b/CSMath/src/bezier/geom/BezierProperties.java
index 40e49fa..1b5443d 100644
--- a/CSMath/src/bezier/BezierProperties.java
+++ b/CSMath/src/bezier/geom/BezierProperties.java
@@ -1,4 +1,4 @@
-package bezier;
+package bezier.geom;
import java.awt.Color;
diff --git a/CSMath/src/bezier/geom/Matrix.java b/CSMath/src/bezier/geom/Matrix.java
new file mode 100644
index 0000000..a728a02
--- /dev/null
+++ b/CSMath/src/bezier/geom/Matrix.java
@@ -0,0 +1,55 @@
+package bezier.geom;
+
+public class Matrix {
+ public final double[][] mat;
+
+ public Matrix(double[][] mat) {
+ this.mat = mat;
+ }
+
+ public Matrix add(Matrix m) {
+ return add(m.mat);
+ }
+
+ public double[] scalarMultiply(double[] vec) {
+ double[] ret = new double[vec.length];
+
+ for(int i = 0; i < mat[0].length; i++) {
+ for(int j = 0; j < mat.length; j++) {
+ ret[i] += mat[i][j] * vec[j];
+ }
+ }
+
+ return ret;
+ }
+
+ public Matrix add(double[][] matr) {
+ double[][] ret = new double[mat.length][mat[0].length];
+
+ for(int i = 0; i < mat.length; i++) {
+ for(int j = 0; j < mat[0].length; j++) {
+ ret[i][j] = mat[i][j] + matr[i][j];
+ }
+ }
+
+ return new Matrix(ret);
+ }
+
+ public Matrix multiply(Matrix m) {
+ return multiply(m.mat);
+ }
+
+ public Matrix multiply(double[][] matr) {
+ double[][] ret = new double[mat.length][matr[0].length];
+
+ for (int i = 0; i < mat.length; i++) {
+ for (int j = 0; j < matr[0].length; j++) {
+ for (int k = 0; k < matr.length; k++) {
+ ret[i][j] += mat[i][k] * matr[k][j];
+ }
+ }
+ }
+
+ return new Matrix(ret);
+ }
+}
diff --git a/CSMath/src/bezier/TDHPoint.java b/CSMath/src/bezier/geom/TDHPoint.java
index f2a02a8..40553a9 100644
--- a/CSMath/src/bezier/TDHPoint.java
+++ b/CSMath/src/bezier/geom/TDHPoint.java
@@ -1,4 +1,4 @@
-package bezier;
+package bezier.geom;
/**
* A two-dimensional homogeneous point.
diff --git a/CSMath/src/bezier/TDPoint.java b/CSMath/src/bezier/geom/TDPoint.java
index 79f95df..8074461 100644
--- a/CSMath/src/bezier/TDPoint.java
+++ b/CSMath/src/bezier/geom/TDPoint.java
@@ -1,4 +1,4 @@
-package bezier;
+package bezier.geom;
/**
* Represents a two-dimensional point.
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<TDHTransform> 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