Matrix Class Documentation

classMatrix

Namespace:com::datalogics::PDFL

Detailed Description

A transformation matrix in a PDF file is specified by six numbers. The matrix is usually in the form of an array containing the six elements [a b c d h v].

A translation is specified as [ 1 0 0 1 tx ty], where tx and ty are the distance to translate from the origin of the coordinate system in the horizontal and vertical dimension, respectively.

A scaling is obtained by [sx 0 0 sy 0 0]. This scales the coordinates so that 1 unit in the horizontal and vertical dimension of the new coordinate system is the same size as sx and sy units, respectively, as in the previous coordinate system.

A rotation is produced by [ cos T sin T -sin T cos T 0 0 ], which has the effect of rotating the coordinate system axes by an angle T (degrees) counterclockwise.

This material indicates that the matrix specifying a transformation is premultiplied with the current transformation matrix, i.e.,

M' = Mt * M

The implementation of the Scale, Rotate, and Translate convenience functions of Matrix reflect the same order of operations, so that they are consistent with the PDF Reference manual. They are also consistent with the scale, rotate, and translate operators in PostScript, from which the coordinate system model in PDF is derived.

Uses types

Constructor & Destructor Documentation

Matrix

Matrix()

the default constructor creates a transformation matrix to translate the rectangle 1 element (1/72nd of an inch) from the origin.

Matrix

Matrix(doublena, doublenb, doublenc, doublend, doublenh, doublenv)

Parameters

na: double

The horizontal scaling component (a).

nb: double

The vertical shearing component (b).

nc: double

The horizontal shearing component (c).

nd: double

The vertical scaling component (d).

nh: double

The horizontal translation component (h).

nv: double

The vertical translation component (v).

Construct a Matrix with the specified component values.

Member Function Documentation

DisposeChildren

voidDisposeChildren()

Returns:

void

[static initializer]

static void[static initializer]()

concat

Matrixconcat(MatrixMt)

Parameters

Mt: Matrix

The matrix to concatenate (premultiply) onto this matrix.

Returns:

the transformed matrix

Concatenate a matrix onto an existing matrix. The product returned is:

M' = Mt * M

This corresponds to the action of the cm operator.

delete

synchronized voiddelete(Booleandisposing)

Parameters

disposing: Boolean

Returns:

synchronized void

delete

synchronized voiddelete()

Returns:

synchronized void

equals

booleanequals(Objectrhs)

Parameters

rhs: Object

Returns:

boolean

finalize

voidfinalize()

Returns:

void

getA

doublegetA()

Returns:

double

The horizontal scaling component of the matrix.

getB

doublegetB()

Returns:

double

The vertical shearing component of the matrix.

getC

doublegetC()

Returns:

double

The horizontal shearing component of the matrix.

getD

doublegetD()

Returns:

double

The vertical scaling component of the matrix.

getH

doublegetH()

Returns:

double

The horizontal translation component of the matrix.

getV

doublegetV()

Returns:

double

The vertical translation component of the matrix.

invert

Matrixinvert()

Returns:

The inverted matrix.

Invert the Matrix object and return a new Matrix object.

multiply

static Matrixmultiply(Matrixm1, Matrixm2)

Parameters

m1: Matrix

a matrix

m2: Matrix

a matrix

Returns:

the matrix product m1 x m2

Multiply two transformation matrices.

rotate

Matrixrotate(doubleT)

Parameters

T: double

The rotation, counterclockwise

Returns:

the result [cos T sin T -sin T 0 0] * M

Rotate a matrix by T degrees counterclockwise units. Rotation is done by creating the matrix [ cos T sin T -sin T cos T 0 0 ], and calling the Concat function with that matrix.

sameTypeEquals

booleansameTypeEquals(Matrixrhs)

Parameters

rhs: Matrix

Returns:

boolean

scale

Matrixscale(doublesx, doublesy)

Parameters

sx: double

X scaling factor

sy: double

Y scaling factor

Returns:

the result [sx 0 0 sy 0 0] * M

Scale a matrix by (sx,sy) units. Scaling is done by creating the matrix [sx 0 0 sy 0 0], and calling the Concat function with that matrix.

setA

voidsetA(doublevalue)

Parameters

value: double

Returns:

void

The horizontal scaling component of the matrix.

setB

voidsetB(doublevalue)

Parameters

value: double

Returns:

void

The vertical shearing component of the matrix.

setC

voidsetC(doublevalue)

Parameters

value: double

Returns:

void

The horizontal shearing component of the matrix.

setD

voidsetD(doublevalue)

Parameters

value: double

Returns:

void

The vertical scaling component of the matrix.

setH

voidsetH(doublevalue)

Parameters

value: double

Returns:

void

The horizontal translation component of the matrix.

setV

voidsetV(doublevalue)

Parameters

value: double

Returns:

void

The vertical translation component of the matrix.

toString

StringtoString()

Returns:

A string describing this Matrix and its component values.

Returns a string representation of this Matrix. The returned string contains all six matrix components (a, b, c, d, h, v) in a human-readable format.

translate

Matrixtranslate(doubletx, doublety)

Parameters

tx: double

X translation distance

ty: double

Y translation distance

Returns:

the result [1 0 0 1 tx ty] * M

Translate a matrix by (tx,ty) units. Translation is done by creating the matrix [ 1 0 0 1 tx ty ], and calling the Concat function with that matrix.