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.protectedInitialize a CTM with the values of another CTM. -
Method Summary
Modifier and TypeMethodDescriptionstatic CTMgetCTMandRelDims(int absRefOrient, WritingMode writingMode, Rectangle2D absVPrect, FODimension reldims) Construct a coordinate transformation matrix (CTM).static CTMgetWMctm(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)
-