Package: graphene

Macro graphene:with-matrix

Lambda List

graphene:with-matrix ((var &rest args) &body body)

Syntax

(graphene:with-matrix (m) body) => result
(graphene:with-matrix (m m1) body) => result
(graphene:with-matrix (m (p graphene:point3d-t)) body) => result
(graphene:with-matrix (m angle (axis graphene:vec3-t)) body) => result
(graphene:with-matrix (m xskew yskew) body) => result
(graphene:with-matrix (m x y z) body) => result
(graphene:with-matrix (m (eye graphene:vec3-t) center up) body) => result
(graphene:with-matrix (m fovy aspect znear zfar) body) => result
(graphene:with-matrix (m (v0 graphene:vec4-t) v1 v2 v3) body) => result
(graphene:with-matrix (m left right top bottom znear zfar) body) => result
(graphene:with-matrix (m (xx :double) yx xy yy x0 y0) body) => result
(graphene:with-matrix (m &rest args) body) => result

Arguments

m -- a graphene:matrix-t instance to create and initialize
m1 -- a graphene:matrix-t instance to use for initialization
p -- a graphene:point3d-t instance
axis, eye, center, up -- a graphene:vec3-t instance
v0,v1,v2,v3 -- a graphene:vec4-t instance
xx, yx, xy, yy, x0, y0 -- a double float
other values -- a single float

Details

The graphene:with-matrix macro allocates a new graphene:matrix-t instance, initializes the matrix with the given values and executes the body that uses the matrix. After execution of the body the allocated memory for the matrix is released.

The macro uses the following function for intialization of the matrix:

Notes

The memory is allocated with the graphene:matrix-alloc function and released with the graphene:matrix-free function.
 

See also

2024-1-20