Package org.apache.fop.area
Class CTM
- java.lang.Object
-
- org.apache.fop.area.CTM
-
- All Implemented Interfaces:
java.io.Serializable
public class CTM extends java.lang.Object implements java.io.SerializableDescribe 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:
- Serialized Form
-
-
Constructor Summary
Constructors Modifier Constructor Description CTM()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(java.awt.geom.AffineTransform at)Initialize a CTM with the values of an AffineTransform.protectedCTM(CTM ctm)Initialize a CTM with the values of another CTM.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static CTMgetCTMandRelDims(int absRefOrient, WritingMode writingMode, java.awt.geom.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.CTMmultiply(CTM premult)Multiply new passed CTM with this one and generate a new result CTM.CTMrotate(double angle)Rotate this CTM by "angle" radians and return a new result CTM.CTMscale(double x, double y)Scale this CTM by the passed x and y values and return a new result CTM.java.awt.geom.AffineTransformtoAffineTransform()Returns this CTM as an AffineTransform object.double[]toArray()Get an array containing the values of this transform.java.lang.StringtoString()Get string for this transform.java.awt.geom.Rectangle2Dtransform(java.awt.geom.Rectangle2D inRect)Transform a rectangle by the CTM to produce a rectangle in the transformed coordinate system.CTMtranslate(double x, double y)Translate this CTM by the passed x and y values and return a new result CTM.
-
-
-
Constructor Detail
-
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
protected CTM(CTM ctm)
Initialize a CTM with the values of another CTM.- Parameters:
ctm- another CTM
-
CTM
public CTM(java.awt.geom.AffineTransform at)
Initialize a CTM with the values of an AffineTransform.- Parameters:
at- the transformation matrix
-
-
Method Detail
-
getWMctm
public 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.- 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
public CTM multiply(CTM premult)
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
public CTM rotate(double angle)
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
public CTM translate(double x, double y)
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
public CTM scale(double x, double y)
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
public java.awt.geom.Rectangle2D transform(java.awt.geom.Rectangle2D inRect)
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
public java.lang.String toString()
Get string for this transform.- Overrides:
toStringin classjava.lang.Object- Returns:
- a string with the transform values
-
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
public java.awt.geom.AffineTransform toAffineTransform()
Returns this CTM as an AffineTransform object.- Returns:
- the AffineTransform representation
-
getCTMandRelDims
public static CTM getCTMandRelDims(int absRefOrient, WritingMode writingMode, java.awt.geom.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)
-
-