NAME
Prima::types - builtin types
DESCRIPTION
This document describes the auxiliary second-citizen 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 lower-case 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 pre-populated 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 inclusive-exclusive,
inclusive
returns X1,Y1,X2,Y2 as the inclusive-inclusive 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>.