diff options
author | Sven Gothel <[email protected]> | 2014-03-06 23:30:03 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2014-03-06 23:30:03 +0100 |
commit | 68eb9f1ea136428b64fe9246865fbabb8c82f6ac (patch) | |
tree | 5d454b1fffd751c3299711e13fab5d9c61122d1d /src/jogl/classes/jogamp | |
parent | 0799ac2fd303c86b09194cfcdad916cf1f94c96d (diff) |
Bug 801: AffineTransform: Remove Serializable, make methods final; FloatUtil: Add DEBUG and description about Row-Major and Column-Major Order. AABBOX: Use FloatUtil.DEBUG for mapToWindow(..)
Diffstat (limited to 'src/jogl/classes/jogamp')
-rw-r--r-- | src/jogl/classes/jogamp/graph/geom/plane/AffineTransform.java | 104 |
1 files changed, 36 insertions, 68 deletions
diff --git a/src/jogl/classes/jogamp/graph/geom/plane/AffineTransform.java b/src/jogl/classes/jogamp/graph/geom/plane/AffineTransform.java index 5953ea89b..621802c36 100644 --- a/src/jogl/classes/jogamp/graph/geom/plane/AffineTransform.java +++ b/src/jogl/classes/jogamp/graph/geom/plane/AffineTransform.java @@ -19,18 +19,13 @@ */ package jogamp.graph.geom.plane; -import java.io.IOException; -import java.io.Serializable; - // import jogamp.opengl.util.HashCode; import com.jogamp.graph.geom.Vertex; import com.jogamp.graph.geom.Vertex.Factory; import com.jogamp.opengl.math.FloatUtil; -public class AffineTransform implements Cloneable, Serializable { - - private static final long serialVersionUID = 1330973210523860834L; +public class AffineTransform implements Cloneable { static final String determinantIsZero = "Determinant is zero"; @@ -74,16 +69,12 @@ public class AffineTransform implements Cloneable, Serializable { public AffineTransform() { pointFactory = null; - type = TYPE_IDENTITY; - m00 = m11 = 1.0f; - m10 = m01 = m02 = m12 = 0.0f; + setToIdentity(); } public AffineTransform(Factory<? extends Vertex> factory) { pointFactory = factory; - type = TYPE_IDENTITY; - m00 = m11 = 1.0f; - m10 = m01 = m02 = m12 = 0.0f; + setToIdentity(); } public AffineTransform(AffineTransform t) { @@ -187,35 +178,35 @@ public class AffineTransform implements Cloneable, Serializable { return type; } - public float getScaleX() { + public final float getScaleX() { return m00; } - public float getScaleY() { + public final float getScaleY() { return m11; } - public float getShearX() { + public final float getShearX() { return m01; } - public float getShearY() { + public final float getShearY() { return m10; } - public float getTranslateX() { + public final float getTranslateX() { return m02; } - public float getTranslateY() { + public final float getTranslateY() { return m12; } - public boolean isIdentity() { + public final boolean isIdentity() { return getType() == TYPE_IDENTITY; } - public void getMatrix(float[] matrix) { + public final void getMatrix(float[] matrix) { matrix[0] = m00; matrix[1] = m10; matrix[2] = m01; @@ -226,11 +217,11 @@ public class AffineTransform implements Cloneable, Serializable { } } - public float getDeterminant() { + public final float getDeterminant() { return m00 * m11 - m01 * m10; } - public void setTransform(float m00, float m10, float m01, float m11, float m02, float m12) { + public final void setTransform(float m00, float m10, float m01, float m11, float m02, float m12) { this.type = TYPE_UNKNOWN; this.m00 = m00; this.m10 = m10; @@ -240,18 +231,18 @@ public class AffineTransform implements Cloneable, Serializable { this.m12 = m12; } - public void setTransform(AffineTransform t) { + public final void setTransform(AffineTransform t) { type = t.type; setTransform(t.m00, t.m10, t.m01, t.m11, t.m02, t.m12); } - public void setToIdentity() { + public final void setToIdentity() { type = TYPE_IDENTITY; m00 = m11 = 1.0f; m10 = m01 = m02 = m12 = 0.0f; } - public void setToTranslation(float mx, float my) { + public final void setToTranslation(float mx, float my) { m00 = m11 = 1.0f; m01 = m10 = 0.0f; m02 = mx; @@ -263,7 +254,7 @@ public class AffineTransform implements Cloneable, Serializable { } } - public void setToScale(float scx, float scy) { + public final void setToScale(float scx, float scy) { m00 = scx; m11 = scy; m10 = m01 = m02 = m12 = 0.0f; @@ -274,7 +265,7 @@ public class AffineTransform implements Cloneable, Serializable { } } - public void setToShear(float shx, float shy) { + public final void setToShear(float shx, float shy) { m00 = m11 = 1.0f; m02 = m12 = 0.0f; m01 = shx; @@ -286,7 +277,7 @@ public class AffineTransform implements Cloneable, Serializable { } } - public void setToRotation(float angle) { + public final void setToRotation(float angle) { float sin = FloatUtil.sin(angle); float cos = FloatUtil.cos(angle); if (FloatUtil.abs(cos) < ZERO) { @@ -304,7 +295,7 @@ public class AffineTransform implements Cloneable, Serializable { type = TYPE_UNKNOWN; } - public void setToRotation(float angle, float px, float py) { + public final void setToRotation(float angle, float px, float py) { setToRotation(angle); m02 = px * (1.0f - m00) + py * m10; m12 = py * (1.0f - m00) - px * m10; @@ -341,23 +332,23 @@ public class AffineTransform implements Cloneable, Serializable { return t; } - public void translate(float mx, float my) { + public final void translate(float mx, float my) { concatenate(AffineTransform.getTranslateInstance(pointFactory, mx, my)); } - public void scale(float scx, float scy) { + public final void scale(float scx, float scy) { concatenate(AffineTransform.getScaleInstance(pointFactory, scx, scy)); } - public void shear(float shx, float shy) { + public final void shear(float shx, float shy) { concatenate(AffineTransform.getShearInstance(pointFactory, shx, shy)); } - public void rotate(float angle) { + public final void rotate(float angle) { concatenate(AffineTransform.getRotateInstance(pointFactory, angle)); } - public void rotate(float angle, float px, float py) { + public final void rotate(float angle, float px, float py) { concatenate(AffineTransform.getRotateInstance(pointFactory, angle, px, py)); } @@ -379,15 +370,15 @@ public class AffineTransform implements Cloneable, Serializable { t1.m02 * t2.m10 + t1.m12 * t2.m11 + t2.m12);// m12 } - public void concatenate(AffineTransform t) { + public final void concatenate(AffineTransform t) { setTransform(multiply(t, this)); } - public void preConcatenate(AffineTransform t) { + public final void preConcatenate(AffineTransform t) { setTransform(multiply(this, t)); } - public AffineTransform createInverse() throws NoninvertibleTransformException { + public final AffineTransform createInverse() throws NoninvertibleTransformException { float det = getDeterminant(); if (FloatUtil.abs(det) < ZERO) { throw new NoninvertibleTransformException(determinantIsZero); @@ -458,7 +449,7 @@ public class AffineTransform implements Cloneable, Serializable { } } - public Vertex deltaTransform(Vertex src, Vertex dst) { + public final Vertex deltaTransform(Vertex src, Vertex dst) { if (dst == null) { dst = pointFactory.create(src.getId(), src.isOnCurve(), src.getTexCoord()); } @@ -468,7 +459,7 @@ public class AffineTransform implements Cloneable, Serializable { return dst; } - public void deltaTransform(float[] src, int srcOff, float[] dst, int dstOff, int length) { + public final void deltaTransform(float[] src, int srcOff, float[] dst, int dstOff, int length) { while (--length >= 0) { float x = src[srcOff++]; float y = src[srcOff++]; @@ -477,7 +468,7 @@ public class AffineTransform implements Cloneable, Serializable { } } - public Vertex inverseTransform(Vertex src, Vertex dst) throws NoninvertibleTransformException { + public final Vertex inverseTransform(Vertex src, Vertex dst) throws NoninvertibleTransformException { float det = getDeterminant(); if (FloatUtil.abs(det) < ZERO) { throw new NoninvertibleTransformException(determinantIsZero); @@ -491,7 +482,7 @@ public class AffineTransform implements Cloneable, Serializable { return dst; } - public void inverseTransform(float[] src, int srcOff, float[] dst, int dstOff, int length) + public final void inverseTransform(float[] src, int srcOff, float[] dst, int dstOff, int length) throws NoninvertibleTransformException { float det = getDeterminant(); @@ -507,7 +498,7 @@ public class AffineTransform implements Cloneable, Serializable { } } - public Path2D createTransformedShape(Path2D src) { + public final Path2D createTransformedShape(Path2D src) { if (src == null) { return null; } @@ -521,7 +512,7 @@ public class AffineTransform implements Cloneable, Serializable { } @Override - public String toString() { + public final String toString() { return getClass().getName() + "[[" + m00 + ", " + m01 + ", " + m02 + "], [" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ @@ -529,7 +520,7 @@ public class AffineTransform implements Cloneable, Serializable { } @Override - public AffineTransform clone() { + public final AffineTransform clone() { try { return (AffineTransform) super.clone(); } catch (CloneNotSupportedException e) { @@ -550,7 +541,7 @@ public class AffineTransform implements Cloneable, Serializable { } */ @Override - public boolean equals(Object obj) { + public final boolean equals(Object obj) { if (obj == this) { return true; } @@ -563,28 +554,5 @@ public class AffineTransform implements Cloneable, Serializable { } return false; } - - - /** - * Write AffineTrasform object to the output steam. - * @param stream - the output stream - * @throws IOException - if there are I/O errors while writing to the output strem - */ - private void writeObject(java.io.ObjectOutputStream stream) throws IOException { - stream.defaultWriteObject(); - } - - - /** - * Read AffineTransform object from the input stream - * @param stream - the input steam - * @throws IOException - if there are I/O errors while reading from the input strem - * @throws ClassNotFoundException - if class could not be found - */ - private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException { - stream.defaultReadObject(); - type = TYPE_UNKNOWN; - } - } |