NAME
Prima::types  builtin types
DESCRIPTION
This document describes the auxiliary secondcitizen classes that are used as results of Prima methods and accepted as inputs. Objects that instantiate from these classes are usually never created manually. The names of some of these classes begin with a lowercase letter, to underscore their auxiliary nature.
Prima::array
An overloaded C array that can be used transparently as a normal perl array. The array can only hold numbers. The reason the Prima::array
class exists is so Prima methods won't need to do expensive conversions between a perl array of scalars to a C array of integers or floats.
 new LETTER = [idsS], BUF = undef

Creates a new C array with the type of either int, double, short, or unsigned short. There are also methods
new_int
,new_double
,new_short
, andnew_ushort
that do the same.BUF, a normal perl string, can be used to initialize the array, if any (and can be prepopulated with pack()). Otherwise, an array is created empty.
 is_array SCALAR

Checks whether the SCALAR is a
Prima::array
object.  substr OFFSET, LENGTH, REPLACEMENT

Emulates perl's
substr
except operates not on characters but on the individual numeric entries of the array. Returns a newPrima::array
object.  append ARRAY

Assuming that two arrays have the same type, appends the ARRAY's contents to its content.
 clone

Clones the array.
Prima::matrix
An array of 6 doubles with some helper methods attached.
 A,B,C,D,X,Y

Named accessory properties for the 6 members. The members can just as well be accessed directly with the array syntax.
 clone

Clones the matrix object
 identity

Sets the matrix to
Prima::matrix::identity
, or (1,0,0,1,0,0)  inverse_transform @POINTS  $POINTS_ARRAY

Applies the inverse matrix tranformations to an array or an arrayref of points and returns the result matrix in the same format (i e array for array, ref for ref).
 new [ @ARRAY ]

Creates a new object and optionally initializes it with @ARRAY
 multiply MATRIX

Multiplies the matrices and stores the result
 rotate ANGLE

Rotates the matrix
 scale MX,MY

Scales the matrix
 shear DX,DY

Shears the matrix
 set @ARRAY

Assigns all the 6 members at once
 translate DX,DY

Translates the matrix
 transform @POINTS  $POINTS_ARRAY

Applies matrix tranformations to an array or arrayref of points and returns the result matrix in the same format (i e array for array, ref for ref).
See also: Prima::Matrix
Prima::Matrix
Same as Prima::matrix
but explicitly binds to drawable objects so that all changes to the matrix object are immediately reflected in the drawable.
Features all the methods available to Prima::matrix
(except apply
), plus the ones described below.
 new CANVAS

Creates a new matrix object instance
 canvas DRAWABLE

Accesses the associated drawable object
 get

Returns the current matrix
 reset

Sets the matrix to
Prima::matrix::identity
, or (1,0,0,1,0,0)  save, restore

Saves and restores the matrix content in the internal stack
Prima::rect
Represents a rectangular object either as a rectangle ( X1,Y1,X2,Y2 ) or a box ( X,Y,WIDTH,HEIGHT ).
 box

Returns X, Y, WIDTH, HEIGHT
 clone

Clones the object
 enlarge N

Enlarges the rectangle by N
 inclusive

Rectangle itself is agnostic of its 2D presentation, but assuming the coordinates are inclusiveexclusive,
inclusive
returns X1,Y1,X2,Y2 as the inclusiveinclusive rectangle.  intersect RECT

Intersects with the RECT rectangle and stores the result
 is_empty

Returns true if the rectangle width and height are zero
 is_equal RECT

Returns true if both rectangles are equal
 new ()  (WIDTH,HEIGHT)  (X1,Y1,X2,Y2)

Creates a new object assuming the rectangle syntax
 new_box X,Y,WIDTH,HEIGHT

Creates new object assuming the box syntax
 origin

Returns X and Y
 shrink N

Shrinks the rectangle by N
 size

Returns the WIDTH and HEIGHT of the rectangle
 union RECT

Joins the rectangle with the RECT rectangle and stores the result
AUTHOR
Dmitry Karasik, <dmitry@karasik.eu.org>.