Package org.apache.fop.area
Class CTM
java.lang.Object
org.apache.fop.area.CTM
- All Implemented Interfaces:
Serializable
Describe a PDF or PostScript style coordinate transformation matrix (CTM).
The matrix encodes translations, scaling and rotations of the coordinate
system used to render pages.
- See Also:
-
Constructor Summary
ConstructorsModifierConstructorDescriptionCTM()
Create the identity matrixCTM
(double x, double y) Initialize a CTM to the identity matrix with a translation specified by x and yCTM
(double a, double b, double c, double d, double e, double f) Initialize a CTM from the passed arguments.CTM
(AffineTransform at) Initialize a CTM with the values of an AffineTransform.protected
Initialize a CTM with the values of another CTM. -
Method Summary
Modifier and TypeMethodDescriptionstatic CTM
getCTMandRelDims
(int absRefOrient, WritingMode writingMode, Rectangle2D absVPrect, FODimension reldims) Construct a coordinate transformation matrix (CTM).static CTM
getWMctm
(WritingMode wm, int ipd, int bpd) Return a CTM which will transform coordinates for a particular writing-mode into normalized first quandrant coordinates.Multiply new passed CTM with this one and generate a new result CTM.rotate
(double angle) Rotate this CTM by "angle" radians and return a new result CTM.scale
(double x, double y) Scale this CTM by the passed x and y values and return a new result CTM.Returns this CTM as an AffineTransform object.double[]
toArray()
Get an array containing the values of this transform.toString()
Get string for this transform.transform
(Rectangle2D inRect) Transform a rectangle by the CTM to produce a rectangle in the transformed coordinate system.translate
(double x, double y) Translate this CTM by the passed x and y values and return a new result CTM.
-
Constructor Details
-
CTM
public CTM()Create the identity matrix -
CTM
public CTM(double a, double b, double c, double d, double e, double f) Initialize a CTM from the passed arguments.- Parameters:
a
- the x scaleb
- the x shearc
- the y sheard
- the y scalee
- the x shiftf
- the y shift
-
CTM
public CTM(double x, double y) Initialize a CTM to the identity matrix with a translation specified by x and y- Parameters:
x
- the x shifty
- the y shift.
-
CTM
Initialize a CTM with the values of another CTM.- Parameters:
ctm
- another CTM
-
CTM
Initialize a CTM with the values of an AffineTransform.- Parameters:
at
- the transformation matrix
-
-
Method Details
-
getWMctm
Return a CTM which will transform coordinates for a particular writing-mode into normalized first quandrant coordinates.- Parameters:
wm
- A writing mode constant from fo.properties.WritingMode, ie. one of LR_TB, RL_TB, TB_RL, TB_LR.ipd
- The inline-progression dimension of the reference area whose CTM is being set..bpd
- The block-progression dimension of the reference area whose CTM is being set.- Returns:
- a new CTM with the required transform
-
multiply
Multiply new passed CTM with this one and generate a new result CTM.- Parameters:
premult
- The CTM to multiply with this one. The new one will be the first multiplicand.- Returns:
- CTM The result of multiplying premult * this.
-
rotate
Rotate this CTM by "angle" radians and return a new result CTM. This is used to account for reference-orientation.- Parameters:
angle
- The angle in radians. Positive angles are measured counter- clockwise.- Returns:
- CTM The result of rotating this CTM.
-
translate
Translate this CTM by the passed x and y values and return a new result CTM.- Parameters:
x
- The amount to translate along the x axis.y
- The amount to translate along the y axis.- Returns:
- CTM The result of translating this CTM.
-
scale
Scale this CTM by the passed x and y values and return a new result CTM.- Parameters:
x
- The amount to scale along the x axis.y
- The amount to scale along the y axis.- Returns:
- CTM The result of scaling this CTM.
-
transform
Transform a rectangle by the CTM to produce a rectangle in the transformed coordinate system.- Parameters:
inRect
- The rectangle in the original coordinate system- Returns:
- Rectangle2D The rectangle in the transformed coordinate system.
-
toString
Get string for this transform. -
toArray
public double[] toArray()Get an array containing the values of this transform. This creates and returns a new transform with the values in it.- Returns:
- an array containing the transform values
-
toAffineTransform
Returns this CTM as an AffineTransform object.- Returns:
- the AffineTransform representation
-
getCTMandRelDims
public static CTM getCTMandRelDims(int absRefOrient, WritingMode writingMode, Rectangle2D absVPrect, FODimension reldims) Construct a coordinate transformation matrix (CTM).- Parameters:
absRefOrient
- absolute reference orientationwritingMode
- the writing modeabsVPrect
- absolute viewpoint rectanglereldims
- relative dimensions- Returns:
- CTM the coordinate transformation matrix (CTM)
-