summaryrefslogtreecommitdiff
path: root/CSMath/src/bezier/geom/transform
diff options
context:
space:
mode:
Diffstat (limited to 'CSMath/src/bezier/geom/transform')
-rw-r--r--CSMath/src/bezier/geom/transform/TDHCombination.java12
-rw-r--r--CSMath/src/bezier/geom/transform/TDHLineReflection.java20
-rw-r--r--CSMath/src/bezier/geom/transform/TDHMatrixTransform.java28
-rw-r--r--CSMath/src/bezier/geom/transform/TDHPointRotation.java17
-rw-r--r--CSMath/src/bezier/geom/transform/TDHRotation.java14
-rw-r--r--CSMath/src/bezier/geom/transform/TDHScale.java1
-rw-r--r--CSMath/src/bezier/geom/transform/TDHShear.java16
-rw-r--r--CSMath/src/bezier/geom/transform/TDHXAxisReflection.java5
-rw-r--r--CSMath/src/bezier/geom/transform/TDHYAxisReflection.java5
9 files changed, 118 insertions, 0 deletions
diff --git a/CSMath/src/bezier/geom/transform/TDHCombination.java b/CSMath/src/bezier/geom/transform/TDHCombination.java
index 27d71e7..65dec7c 100644
--- a/CSMath/src/bezier/geom/transform/TDHCombination.java
+++ b/CSMath/src/bezier/geom/transform/TDHCombination.java
@@ -5,7 +5,15 @@ import java.util.List;
import bezier.geom.TDHPoint;
+/**
+ * Combination of 2D homogenous transforms.
+ * @author bjculkin
+ *
+ */
public class TDHCombination implements TDHTransform {
+ /**
+ * The transforms that make up this transform.
+ */
public final List<TDHTransform> forms;
@Override
@@ -13,6 +21,10 @@ public class TDHCombination implements TDHTransform {
return TDHTransformType.COMBINATION;
}
+ /**
+ * Create a new combined transform.
+ * @param forms The transforms to combine.
+ */
public TDHCombination(TDHTransform... forms) {
this.forms = new ArrayList<>(forms.length);
diff --git a/CSMath/src/bezier/geom/transform/TDHLineReflection.java b/CSMath/src/bezier/geom/transform/TDHLineReflection.java
index 0158d60..1ebb76e 100644
--- a/CSMath/src/bezier/geom/transform/TDHLineReflection.java
+++ b/CSMath/src/bezier/geom/transform/TDHLineReflection.java
@@ -2,11 +2,31 @@ package bezier.geom.transform;
import bezier.geom.TDHPoint;
+/**
+ * Transform to reflect across a line.
+ * @author bjculkin
+ *
+ */
public class TDHLineReflection implements TDHTransform {
+ /**
+ * 'a' value for line.
+ */
public final double a;
+ /**
+ * 'b' value for line.
+ */
public final double b;
+ /**
+ * 'c' value for line.
+ */
public final double c;
+ /**
+ * Create a new line-reflect transform.
+ * @param a 'a' value for the line.
+ * @param b 'b' value for the line.
+ * @param c 'c' value for the line.
+ */
public TDHLineReflection(double a, double b, double c) {
this.a = a;
this.b = b;
diff --git a/CSMath/src/bezier/geom/transform/TDHMatrixTransform.java b/CSMath/src/bezier/geom/transform/TDHMatrixTransform.java
index 5014d1f..0952703 100644
--- a/CSMath/src/bezier/geom/transform/TDHMatrixTransform.java
+++ b/CSMath/src/bezier/geom/transform/TDHMatrixTransform.java
@@ -3,13 +3,34 @@ package bezier.geom.transform;
import bezier.geom.Matrix;
import bezier.geom.TDHPoint;
+/**
+ * 2D homogenous transform defined by a matrix.
+ *
+ * @author bjculkin
+ *
+ */
public class TDHMatrixTransform implements TDHTransform {
+ /**
+ * The matrix for the transform.
+ */
public final Matrix mat;
+ /**
+ * Create a new matrix-based transform.
+ *
+ * @param mat
+ * The matrix that defines the transform.
+ */
public TDHMatrixTransform(Matrix mat) {
this.mat = mat;
}
+ /**
+ * Create a new matrix-based transform.
+ *
+ * @param mat
+ * The matrix that defines the transform.
+ */
public TDHMatrixTransform(double[][] mat) {
this.mat = new Matrix(mat);
}
@@ -26,6 +47,13 @@ public class TDHMatrixTransform implements TDHTransform {
return new TDHPoint(mult[0], mult[1], mult[2]);
}
+ /**
+ * Chain two matrix transforms together.
+ *
+ * @param trans
+ * The next transform to use.
+ * @return A transform that represents the two transforms in serial.
+ */
public TDHTransform then(TDHMatrixTransform trans) {
return new TDHMatrixTransform(mat.multiply(trans.mat));
}
diff --git a/CSMath/src/bezier/geom/transform/TDHPointRotation.java b/CSMath/src/bezier/geom/transform/TDHPointRotation.java
index a207612..c92b172 100644
--- a/CSMath/src/bezier/geom/transform/TDHPointRotation.java
+++ b/CSMath/src/bezier/geom/transform/TDHPointRotation.java
@@ -2,10 +2,27 @@ package bezier.geom.transform;
import bezier.geom.TDHPoint;
+/**
+ * Transformation doing rotation about a point.
+ * @author bjculkin
+ *
+ */
public class TDHPointRotation extends TDHRotation {
+ /**
+ * x-coordinate of point.
+ */
public final double x0;
+ /**
+ * y-coordinate of point.
+ */
public final double y0;
+ /**
+ * Create a new point rotation.
+ * @param theta The degrees to rotate about the point.
+ * @param x0 The x-coordinate of the point.
+ * @param y0 The y-coordinate of the point.
+ */
public TDHPointRotation(double theta, double x0, double y0) {
super(theta);
diff --git a/CSMath/src/bezier/geom/transform/TDHRotation.java b/CSMath/src/bezier/geom/transform/TDHRotation.java
index a8c4cd6..4cea452 100644
--- a/CSMath/src/bezier/geom/transform/TDHRotation.java
+++ b/CSMath/src/bezier/geom/transform/TDHRotation.java
@@ -2,9 +2,21 @@ package bezier.geom.transform;
import bezier.geom.TDHPoint;
+/**
+ * Rotation transform.
+ * @author bjculkin
+ *
+ */
public class TDHRotation implements TDHTransform {
+ /**
+ * Degrees to rotate.
+ */
public final double theta;
+ /**
+ * Create a new rotation transform.
+ * @param theta The degrees to rotate.
+ */
public TDHRotation(double theta) {
this.theta = theta;
}
@@ -17,11 +29,13 @@ public class TDHRotation implements TDHTransform {
return new TDHPoint(x, y, punkt.z);
}
+ @Override
public double[][] matrix() {
return new double[][] { new double[] { Math.cos(theta), Math.sin(theta), 0 },
new double[] { -Math.sin(theta), Math.cos(theta), 0 }, new double[] { 0, 0, 1 } };
}
+ @Override
public TDHTransform invert() {
return new TDHRotation(-theta);
}
diff --git a/CSMath/src/bezier/geom/transform/TDHScale.java b/CSMath/src/bezier/geom/transform/TDHScale.java
index 83c7a63..c064f1b 100644
--- a/CSMath/src/bezier/geom/transform/TDHScale.java
+++ b/CSMath/src/bezier/geom/transform/TDHScale.java
@@ -81,6 +81,7 @@ public class TDHScale implements TDHTransform {
return new double[][] { new double[] { sx, 0, 0 }, new double[] { 0, sy, 0 }, new double[] { 0, 0, sz } };
}
+ @Override
public TDHTransform invert() {
return new TDHScale(1 / sx, 1 / sy, 1 / sy);
}
diff --git a/CSMath/src/bezier/geom/transform/TDHShear.java b/CSMath/src/bezier/geom/transform/TDHShear.java
index f099e74..7e09b63 100644
--- a/CSMath/src/bezier/geom/transform/TDHShear.java
+++ b/CSMath/src/bezier/geom/transform/TDHShear.java
@@ -2,8 +2,19 @@ package bezier.geom.transform;
import bezier.geom.TDHPoint;
+/**
+ * Shear transform.
+ * @author bjculkin
+ *
+ */
public class TDHShear implements TDHTransform {
+ /**
+ * x-value for shear.
+ */
public final double shx;
+ /**
+ * y-value for shear.
+ */
public final double shy;
@Override
@@ -11,6 +22,11 @@ public class TDHShear implements TDHTransform {
return TDHTransformType.SHEAR;
}
+ /**
+ * Create a new shear transform.
+ * @param shx The x-value for shearing.
+ * @param shy The y-value for shearing.
+ */
public TDHShear(double shx, double shy) {
this.shx = shx;
this.shy = shy;
diff --git a/CSMath/src/bezier/geom/transform/TDHXAxisReflection.java b/CSMath/src/bezier/geom/transform/TDHXAxisReflection.java
index 21af1a8..0324c88 100644
--- a/CSMath/src/bezier/geom/transform/TDHXAxisReflection.java
+++ b/CSMath/src/bezier/geom/transform/TDHXAxisReflection.java
@@ -2,6 +2,11 @@ package bezier.geom.transform;
import bezier.geom.TDHPoint;
+/**
+ * Reflect about x-axis.
+ * @author bjculkin
+ *
+ */
public class TDHXAxisReflection implements TDHTransform {
@Override
public TDHTransformType type() {
diff --git a/CSMath/src/bezier/geom/transform/TDHYAxisReflection.java b/CSMath/src/bezier/geom/transform/TDHYAxisReflection.java
index c4ada7f..7e8f6d9 100644
--- a/CSMath/src/bezier/geom/transform/TDHYAxisReflection.java
+++ b/CSMath/src/bezier/geom/transform/TDHYAxisReflection.java
@@ -2,6 +2,11 @@ package bezier.geom.transform;
import bezier.geom.TDHPoint;
+/**
+ * Reflect about y-axis.
+ * @author bjculkin
+ *
+ */
public class TDHYAxisReflection implements TDHTransform {
@Override
public TDHTransformType type() {