Package org.eclipse.swt.graphics
Class Transform
java.lang.Object
org.eclipse.swt.graphics.Resource
org.eclipse.swt.graphics.Transform
Instances of this class represent transformation matrices for
points expressed as (x, y) pairs of floating point numbers.
Application code must explicitly invoke the Transform.dispose()
method to release the operating system resources managed by each instance
when those instances are no longer required.
- Since:
- 3.1
-
Constructor Summary
ConstructorDescriptionConstructs a new identity Transform.Constructs a new Transform given an array of elements that represent the matrix that describes the transformation.Constructs a new Transform given all of the elements that represent the matrix that describes the transformation. -
Method Summary
Modifier and TypeMethodDescriptionvoid
getElements
(float[] elements) Fills the parameter with the values of the transformation matrix that the receiver represents, in the order {m11, m12, m21, m22, dx, dy}.void
identity()
Modifies the receiver such that the matrix it represents becomes the identity matrix.void
invert()
Modifies the receiver such that the matrix it represents becomes the mathematical inverse of the matrix it previously represented.boolean
Returnstrue
if the Transform represents the identity matrix and false otherwise.void
Modifies the receiver such that the matrix it represents becomes the the result of multiplying the matrix it previously represented by the argument.void
rotate
(float angle) Modifies the receiver so that it represents a transformation that is equivalent to its previous transformation rotated by the specified angle.void
scale
(float scaleX, float scaleY) Modifies the receiver so that it represents a transformation that is equivalent to its previous transformation scaled by (scaleX, scaleY).void
setElements
(float m11, float m12, float m21, float m22, float dx, float dy) Modifies the receiver to represent a new transformation given all of the elements that represent the matrix that describes that transformation.void
shear
(float shearX, float shearY) Modifies the receiver so that it represents a transformation that is equivalent to its previous transformation sheared by (shearX, shearY).toString()
Returns a string containing a concise, human-readable description of the receiver.void
transform
(float[] pointArray) Given an array containing points described by alternating x and y values, modify that array such that each point has been replaced with the result of applying the transformation represented by the receiver to that point.void
translate
(float offsetX, float offsetY) Modifies the receiver so that it represents a transformation that is equivalent to its previous transformation translated by (offsetX, offsetY).Methods inherited from class org.eclipse.swt.graphics.Resource
dispose, getDevice, isDisposed
-
Constructor Details
-
Transform
Constructs a new identity Transform.This operation requires the operating system's advanced graphics subsystem which may not be available on some platforms.
- Parameters:
device
- the device on which to allocate the Transform- Throws:
IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if device is null and there is no current device
- See Also:
-
Transform
Constructs a new Transform given an array of elements that represent the matrix that describes the transformation.This operation requires the operating system's advanced graphics subsystem which may not be available on some platforms.
- Parameters:
device
- the device on which to allocate the Transformelements
- an array of floats that describe the transformation matrix- Throws:
IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if device is null and there is no current device, or the elements array is null
- ERROR_INVALID_ARGUMENT - if the elements array is too small to hold the matrix values
- See Also:
-
Transform
Constructs a new Transform given all of the elements that represent the matrix that describes the transformation.This operation requires the operating system's advanced graphics subsystem which may not be available on some platforms.
- Parameters:
device
- the device on which to allocate the Transformm11
- the first element of the first row of the matrixm12
- the second element of the first row of the matrixm21
- the first element of the second row of the matrixm22
- the second element of the second row of the matrixdx
- the third element of the first row of the matrixdy
- the third element of the second row of the matrix- Throws:
IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if device is null and there is no current device
- See Also:
-
-
Method Details
-
getElements
public void getElements(float[] elements) Fills the parameter with the values of the transformation matrix that the receiver represents, in the order {m11, m12, m21, m22, dx, dy}.- Parameters:
elements
- array to hold the matrix values- Throws:
SWTException
-- ERROR_GRAPHIC_DISPOSED - if the receiver has been disposed
IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if the parameter is null
- ERROR_INVALID_ARGUMENT - if the parameter is too small to hold the matrix values
-
setElements
public void setElements(float m11, float m12, float m21, float m22, float dx, float dy) Modifies the receiver to represent a new transformation given all of the elements that represent the matrix that describes that transformation.- Parameters:
m11
- the first element of the first row of the matrixm12
- the second element of the first row of the matrixm21
- the first element of the second row of the matrixm22
- the second element of the second row of the matrixdx
- the third element of the first row of the matrixdy
- the third element of the second row of the matrix- Throws:
SWTException
-- ERROR_GRAPHIC_DISPOSED - if the receiver has been disposed
-
identity
public void identity()Modifies the receiver such that the matrix it represents becomes the identity matrix.- Throws:
SWTException
-- ERROR_GRAPHIC_DISPOSED - if the receiver has been disposed
-
isIdentity
public boolean isIdentity()Returnstrue
if the Transform represents the identity matrix and false otherwise.- Returns:
true
if the receiver is an identity Transform, andfalse
otherwise
-
invert
public void invert()Modifies the receiver such that the matrix it represents becomes the mathematical inverse of the matrix it previously represented.- Throws:
SWTException
-- ERROR_GRAPHIC_DISPOSED - if the receiver has been disposed
- ERROR_CANNOT_INVERT_MATRIX - if the matrix is not invertible
-
multiply
Modifies the receiver such that the matrix it represents becomes the the result of multiplying the matrix it previously represented by the argument.- Parameters:
matrix
- the matrix to multiply the receiver by- Throws:
SWTException
-- ERROR_GRAPHIC_DISPOSED - if the receiver has been disposed
IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if the parameter is null
- ERROR_INVALID_ARGUMENT - if the parameter has been disposed
-
translate
public void translate(float offsetX, float offsetY) Modifies the receiver so that it represents a transformation that is equivalent to its previous transformation translated by (offsetX, offsetY).- Parameters:
offsetX
- the distance to translate in the X directionoffsetY
- the distance to translate in the Y direction- Throws:
SWTException
-- ERROR_GRAPHIC_DISPOSED - if the receiver has been disposed
-
scale
public void scale(float scaleX, float scaleY) Modifies the receiver so that it represents a transformation that is equivalent to its previous transformation scaled by (scaleX, scaleY).- Parameters:
scaleX
- the amount to scale in the X directionscaleY
- the amount to scale in the Y direction- Throws:
SWTException
-- ERROR_GRAPHIC_DISPOSED - if the receiver has been disposed
-
rotate
public void rotate(float angle) Modifies the receiver so that it represents a transformation that is equivalent to its previous transformation rotated by the specified angle. The angle is specified in degrees and for the identity transform 0 degrees is at the 3 o'clock position. A positive value indicates a clockwise rotation while a negative value indicates a counter-clockwise rotation.- Parameters:
angle
- the angle to rotate the transformation by- Throws:
SWTException
-- ERROR_GRAPHIC_DISPOSED - if the receiver has been disposed
-
shear
public void shear(float shearX, float shearY) Modifies the receiver so that it represents a transformation that is equivalent to its previous transformation sheared by (shearX, shearY).- Parameters:
shearX
- the shear factor in the X directionshearY
- the shear factor in the Y direction- Throws:
SWTException
-- ERROR_GRAPHIC_DISPOSED - if the receiver has been disposed
-
transform
public void transform(float[] pointArray) Given an array containing points described by alternating x and y values, modify that array such that each point has been replaced with the result of applying the transformation represented by the receiver to that point.- Parameters:
pointArray
- an array of alternating x and y values to be transformed- Throws:
IllegalArgumentException
-- ERROR_NULL_ARGUMENT - if the point array is null
SWTException
-- ERROR_GRAPHIC_DISPOSED - if the receiver has been disposed
-
toString
Returns a string containing a concise, human-readable description of the receiver.
-