Class ASMatrix
java.lang.Object
com.adobe.internal.pdftoolkit.core.types.ASObject
com.adobe.internal.pdftoolkit.core.types.ASMatrix
ASMatrix encapsulates an immutable PDF coordinate transfomation matrix,
or CTM.
-
Constructor Summary
ConstructorsConstructorDescriptionASMatrix(double[] array) Constructs a new matrix of 2 columns, 3 rows from an array of doubles with the ordering ( a, b, c, d, x, y ) where x gives in x and y gives translation in y.ASMatrix(double a, double b, double c, double d, double x, double y) Constructs a new matrix of 2 columns, 3 rows (a, b, c, d, x, y).Constructs a new matrix from another matrix (like clone) -
Method Summary
Modifier and TypeMethodDescription(left) multiply new transform with this (computes X * A, where X is the current transform)static ASMatrixReturns an identity matrix.booleanTest for equalitydoublegeta()doublegetb()doublegetc()doublegetd()Find the matrix, B, that has the property: B * X = identity.double[]doublegetx()doublegety()booleanTest for Identity of the 4x4 matrix Exclusive of translationbooleanTest for Identity of the 6x6 matrix Inclusive of translationbooleanTest for invertabilityvoidmult(double px, double py, double[] output) Multiply a vector by our matrix.doublemultGetX(double px, double py) doublemultGetY(double px, double py) preMultiply(double h, double v) Premultiply the current transform with a translationpreScale(double x) preScale(double sx, double sy) Premultiply the current transform with a scalerotate(double angle) Concatentate the current transform with a rotatescale(double x) scale(double sx, double sy) Concatentate the current transform with a scalesetItalicDegrees(double angle) Set an italic anglesetTranslate(double h, double v) Set an absolute translationtoString()Converts this object to a String representation.translate(double h, double v) Concatenate the current transform with a translatevoidwrite(OutputByteStream outputByteStream) Writes the ASHexString in to the given OutputStream in the format expected by the PDF Spec.
-
Constructor Details
-
ASMatrix
public ASMatrix(double a, double b, double c, double d, double x, double y) Constructs a new matrix of 2 columns, 3 rows (a, b, c, d, x, y).- Parameters:
x- Translation in xy- Translation in y
-
ASMatrix
public ASMatrix(double[] array) Constructs a new matrix of 2 columns, 3 rows from an array of doubles with the ordering ( a, b, c, d, x, y ) where x gives in x and y gives translation in y. -
ASMatrix
Constructs a new matrix from another matrix (like clone)- Parameters:
B- PDFAffineTransform
-
-
Method Details
-
createIdentityMatrix
Returns an identity matrix. -
geta
public double geta() -
getb
public double getb() -
getc
public double getc() -
getd
public double getd() -
getx
public double getx() -
gety
public double gety() -
getValues
public double[] getValues() -
equals
Test for equality -
isIdentity
public boolean isIdentity()Test for Identity of the 4x4 matrix Exclusive of translation -
isIdentity6x6
public boolean isIdentity6x6()Test for Identity of the 6x6 matrix Inclusive of translation -
isInvertable
public boolean isInvertable()Test for invertability -
rotate
Concatentate the current transform with a rotate- Parameters:
angle- Amount of rotation in radians.
-
scale
Concatentate the current transform with a scale -
scale
-
preScale
Premultiply the current transform with a scale -
preScale
-
translate
Concatenate the current transform with a translate -
preMultiply
Premultiply the current transform with a translation -
setTranslate
Set an absolute translation -
setItalicDegrees
Set an italic angle -
mult
public void mult(double px, double py, double[] output) Multiply a vector by our matrix.- Parameters:
px- Along with py: input vectorpy- Along with px: input vectoroutput- output vector -- must be at least size 2 (x is index 0, y is index 1)
-
multGetX
public double multGetX(double px, double py) -
multGetY
public double multGetY(double px, double py) -
concat
(left) multiply new transform with this (computes X * A, where X is the current transform)- Parameters:
A- new transform.
-
getInverse
Find the matrix, B, that has the property: B * X = identity.- Throws:
PDFInvalidParameterException- If the matrix does not have an inverse.
-
toString
Converts this object to a String representation. -
write
Writes the ASHexString in to the given OutputStream in the format expected by the PDF Spec.- Specified by:
writein classASObject- Parameters:
outputByteStream- OutputStream to write to.- Throws:
PDFIOException- See Also:
-
getUnitRotationMatrix
-