Class ASMatrix
- java.lang.Object
-
- com.adobe.internal.pdftoolkit.core.types.ASObject
-
- com.adobe.internal.pdftoolkit.core.types.ASMatrix
-
public class ASMatrix extends ASObject
ASMatrix encapsulates an immutable PDF coordinate transfomation matrix, or CTM.
-
-
Constructor Summary
Constructors Constructor Description 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(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).ASMatrix(ASMatrix B)Constructs a new matrix from another matrix (like clone)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ASMatrixconcat(ASMatrix A)(left) multiply new transform with this (computes X * A, where X is the current transform)static ASMatrixcreateIdentityMatrix()Returns an identity matrix.booleanequals(ASMatrix t)Test for equalitydoublegeta()doublegetb()doublegetc()doublegetd()ASMatrixgetInverse()Find the matrix, B, that has the property: B * X = identity.ASMatrixgetUnitRotationMatrix()double[]getValues()doublegetx()doublegety()booleanisIdentity()Test for Identity of the 4x4 matrix Exclusive of translationbooleanisIdentity6x6()Test for Identity of the 6x6 matrix Inclusive of translationbooleanisInvertable()Test for invertabilityvoidmult(double px, double py, double[] output)Multiply a vector by our matrix.doublemultGetX(double px, double py)doublemultGetY(double px, double py)ASMatrixpreMultiply(double h, double v)Premultiply the current transform with a translationASMatrixpreScale(double x)ASMatrixpreScale(double sx, double sy)Premultiply the current transform with a scaleASMatrixrotate(double angle)Concatentate the current transform with a rotateASMatrixscale(double x)ASMatrixscale(double sx, double sy)Concatentate the current transform with a scaleASMatrixsetItalicDegrees(double angle)Set an italic angleASMatrixsetTranslate(double h, double v)Set an absolute translationStringtoString()Converts this object to a String representation.ASMatrixtranslate(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 Detail
-
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
public ASMatrix(ASMatrix B)
Constructs a new matrix from another matrix (like clone)- Parameters:
B- PDFAffineTransform
-
-
Method Detail
-
createIdentityMatrix
public static ASMatrix 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
public boolean equals(ASMatrix t)
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
public ASMatrix rotate(double angle)
Concatentate the current transform with a rotate- Parameters:
angle- Amount of rotation in radians.
-
scale
public ASMatrix scale(double sx, double sy)
Concatentate the current transform with a scale
-
scale
public ASMatrix scale(double x)
-
preScale
public ASMatrix preScale(double sx, double sy)
Premultiply the current transform with a scale
-
preScale
public ASMatrix preScale(double x)
-
translate
public ASMatrix translate(double h, double v)
Concatenate the current transform with a translate
-
preMultiply
public ASMatrix preMultiply(double h, double v)
Premultiply the current transform with a translation
-
setTranslate
public ASMatrix setTranslate(double h, double v)
Set an absolute translation
-
setItalicDegrees
public ASMatrix setItalicDegrees(double angle)
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
public ASMatrix concat(ASMatrix A)
(left) multiply new transform with this (computes X * A, where X is the current transform)- Parameters:
A- new transform.
-
getInverse
public ASMatrix getInverse() throws PDFInvalidParameterException
Find the matrix, B, that has the property: B * X = identity.- Throws:
PDFInvalidParameterException- If the matrix does not have an inverse.
-
toString
public String toString()
Converts this object to a String representation.
-
write
public void write(OutputByteStream outputByteStream) throws PDFIOException
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:
ASString
-
getUnitRotationMatrix
public ASMatrix getUnitRotationMatrix()
-
-