Package ch.epfl.cs107.play.math
Class Transform
java.lang.Object
ch.epfl.cs107.play.math.Transform
- All Implemented Interfaces:
Serializable
Represents an immutable 2D affine transformation.
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionTransform(double m00, double m01, double m02, double m10, double m11, double m12) Creates a new transform. -
Method Summary
Modifier and TypeMethodDescriptionbooleandoublegetAngle()getX()getY()inthashCode()inverted()onPoint(double x, double y) Transforms point.Transforms point.onVector(double x, double y) Transforms vector.Transforms vector.rotated(double a) Appends rotation around origin (applied after this transform).Appends rotation around specified point (applied after this transform).scaled(double s) Appends scale (applied after this transform).scaled(double sx, double sy) Appends scale (applied after this transform).toString()Appends another transform (applied after this transform).translated(double dx, double dy) Appends translation (applied after this transform).translated(Vector d) Appends translation (applied after this transform).
-
Field Details
-
I
The identity transform -
m00
public final double m00X scale -
m01
public final double m01X shear -
m02
public final double m02X translation -
m10
public final double m10Y shear -
m11
public final double m11Y scale -
m12
public final double m12Y translation
-
-
Constructor Details
-
Transform
public Transform(double m00, double m01, double m02, double m10, double m11, double m12) Creates a new transform.- Parameters:
m00- (double): X scalem01- (double): X shearm02- (double): X translationm10- (double): Y shearm11- (double): Y scalem12- (double): Y translate
-
-
Method Details
-
getX
- Returns:
- (Vector): X-axis, not null
-
getY
- Returns:
- (Vector): Y-axis, not null
-
getOrigin
- Returns:
- (Vector): translation vector, not null
-
getAngle
public double getAngle()- Returns:
- (double): angle, in radians
-
onPoint
Transforms point.- Parameters:
x- (double): abcissay- (double): ordinate- Returns:
- (Vector): transformed point, not null
-
onPoint
Transforms point.- Parameters:
p- (Vector): point, not null- Returns:
- (Vector): transformed point, not null
-
onVector
Transforms vector.- Parameters:
x- (double): abcissay- (double): ordinate- Returns:
- (Vector): transformed vector, not null
-
onVector
Transforms vector.- Parameters:
v- (Vector): point, not null- Returns:
- (Vector): transformed vector, not null
-
transformed
Appends another transform (applied after this transform).- Parameters:
t- (Transform): transform, not null- Returns:
- (Transform): extended transform, not null
-
translated
Appends translation (applied after this transform).- Parameters:
dx- (double): X translationdy- (double): Y translation- Returns:
- (Transform): extended transform, not null
-
translated
Appends translation (applied after this transform).- Parameters:
d- (Vector): translation, not null- Returns:
- (Transform): extended transform, not null
-
scaled
Appends scale (applied after this transform).- Parameters:
sx- (double) X scalesy- (double) Y scale- Returns:
- (Transform): extended transform, not null
-
scaled
Appends scale (applied after this transform).- Parameters:
s- (double): scale- Returns:
- (Transform): extended transform, not null
-
rotated
Appends rotation around origin (applied after this transform).- Parameters:
a- (double): angle, in radians- Returns:
- (Transform): extended transform, not null
-
rotated
Appends rotation around specified point (applied after this transform).- Parameters:
a- (double): angle, in radianscenter- (Vector): rotation axis, not null- Returns:
- (Transform): extended transform, not null
-
inverted
- Returns:
- (Transform): transform inverse, not null
-
hashCode
public int hashCode() -
equals
-
toString
-
getAffineTransform
- Returns:
- (AffineTransform): AWT affine transform equivalent, not null
-