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.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:
- 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.protected
CTM(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 CTM
getCTMandRelDims(int absRefOrient, WritingMode writingMode, java.awt.geom.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.CTM
multiply(CTM premult)
Multiply new passed CTM with this one and generate a new result CTM.CTM
rotate(double angle)
Rotate this CTM by "angle" radians and return a new result CTM.CTM
scale(double x, double y)
Scale this CTM by the passed x and y values and return a new result CTM.java.awt.geom.AffineTransform
toAffineTransform()
Returns this CTM as an AffineTransform object.double[]
toArray()
Get an array containing the values of this transform.java.lang.String
toString()
Get string for this transform.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.CTM
translate(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:
toString
in 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)
-
-