Up: cl-cffi-gtk4 API documentation

Package graphene

This is the API documentation of a Lisp binding to the Graphene library.

About This Package

Point
Point3D
Size
Rectangle
Quad
Triangle
Box
Sphere
Frustum
Vector
Matrix
Euler
Quaternion
Plane
Ray

Point

The graphene:point-t structure is a data structure capable of describing a point with two coordinates x and y of type float. ...

Accessor of the x slot of the graphene:point-t structure. ...

Accessor of the y slot of the graphene:point-t structure. ...

The graphene:with-point macro allocates a new graphene:point-t instance, initializes the point with the given values and executes the body that uses the point. ...

The graphene:with-points macro creates new variable bindings and executes the body that use these bindings. ...

Allocates a new graphene:point-t instance. ...

Frees the resources allocated by the graphene:point-alloc function. ...

Returns a point with all two coordinates set to zero. ...

Initializes the point to the given x and y coordinates. ...

Initializes the point using the coordinates of src. ...

Initializes the point using the components of the given vector. ...

Stores the coordinates of the given point into a vector. ...

Checks whether two given points are equal. ...

Checks whether the two points a and b are within the threshold of epsilon equal. ...

Computes the distance between the two given points. ...

Linearly interpolates the coordinates of a and b using the given factor. ...

Point3D

The graphene:point3d-t structure is a data structure capable of describing a point with three coordinates. ...

Accessor of the x slot of the graphene:point3d-t structure. ...

Accessor of the y slot of the graphene:point3d-t structure. ...

Accessor of the z slot of the graphene:point3d-t structure. ...

The graphene:with-point3d macro allocates a new graphene:point3d-t instance, initializes the point with the given values and executes the body that uses the point. ...

The graphene:with-point3ds macro creates new variable bindings and executes the body that use these bindings. ...

Allocates a new graphene:point3d-t instance. ...

Frees the resources allocated by the graphene:point3d-alloc function. ...

Returns a point with all three coordinates set to zero. ...

Initializes the point to the given x, y, and z coordinates. ...

Initializes the point using the coordinates of src. ...

Initializes the point using the components of the given vector. ...

Stores the coordinates of the given point into a vector. ...

Checks whether two given points are equal. ...

Checks whether the two points a and b are within the threshold of epsilon equal. ...

Computes the distance between the two given points. ...

Linearly interpolates the coordinates of a and b using the given factor. ...

Scales the coordinates of the given point by the given factor. ...

Computes the cross product of the two given points. ...

Computes the dot product of the two given points. ...

Computes the length of the vector represented by the coordinates of the given point. ...

Computes the normalization of the vector represented by the coordinates of the given point. ...

Normalizes the coordinates of the point using the given viewport and clipping planes. ...

Size

The graphene:size-t structure is a data structure capable of describing a size with two components width and height of type float. ...

Accessor of the width slot of the graphene:size-t structure. ...

Accessor of the height slot of the graphene:size-t structure. ...

The graphene:with-size macro allocates a new graphene:size-t instance, initializes the graphene:size-t instance with the given values and executes the body that uses the size. ...

The graphene:with-sizes macro creates new variable bindings and executes the body that use these bindings. ...

Allocates a new graphene:size-t instance. ...

Frees the resources allocated by the graphene:size-alloc function. ...

Returns a graphene:size-t instance with all two components set to zero. ...

Initializes the graphene:size-t instance to the given width and height values. ...

Initializes the graphene:size-t instance using the values of source. ...

Checks whether two given graphene:size-t instances are equal. ...

Linearly interpolates the components of a and b using the given factor. ...

Scales the components of the given graphene:size-t instance by the given factor. ...

Rectangle

The location and size of a rectangle region. ...

The graphene:with-rect macro allocates a new graphene:rect-t instance, initializes the rectangle with the given values and executes the body that uses the rectangle. ...

The graphene:with-rects macro creates new variable bindings and executes the body that use these bindings. ...

Accessor of the origin slot of the graphene:rect-t structure. ...

Accessor of the size slot of the graphene:rect-t structure. ...

Allocates a new graphene:rect-t instance. ...

Frees the resources allocated by the graphene:rect-alloc function. ...

Initializes the given rectangle with the given values. ...

Initializes r using the given src rectangle. ...

Checks whether the two given rectangle are equal. ...

Normalizes the passed rectangle. ...

Retrieves the coordinates of the center of the given rectangle. ...

Retrieves the coordinates of the top-left corner of the given rectangle. ...

Retrieves the coordinates of the top-right corner of the given rectangle. ...

Retrieves the coordinates of the bottom-right corner of the given rectangle. ...

Retrieves the coordinates of the bottom-left corner of the given rectangle. ...

Retrieves the normalized x coordinate of the origin of the given rectangle. ...

Retrieves the normalized y coordinate of the origin of the given rectangle. ...

Retrieves the normalized width of the given rectangle. ...

Retrieves the normalized height of the given rectangle. ...

Compute the area of the given normalized rectangle. ...

Computes the four vertices of a rectangle. ...

Computes the union of the two given rectangles. ...

Computes the intersection of the two given rectangles. ...

Checks whether a rectangle contains the given coordinates. ...

Checks whether a rectangle contains the given rectangle. ...

Offsets the origin by dx and dy. ...

Offsets the origin by dx and dy. ...

Changes the given rectangle to be smaller, or larger depending on the given inset parameters. ...

Changes the given rectangle to be smaller, or larger depending on the given inset parameters. ...

Rounds the origin of the given rectangle to its nearest integers recompute the size so that the rectangle is large enough to contain all the corners of the original rectangle. ...

Expands a rectangle to contain the given point. ...

Linearly interpolates the origin and size of the two given rectangles. ...

Returns a degenerate rectangle with origin fixed at (0, 0) and a size of 0, 0. ...

Scales the size and origin of a rectangle horizontaly by sh, and vertically by sv. ...

Quad

A 4 vertex quadrilateral, as represented by four graphene:point-t instances. ...

The graphene:with-quad macro allocates a new graphene:quad-t instance, initializes the quadrilateral with the given values and executes the body that uses the quadrilateral. ...

The graphene:with-quads macro creates new variable bindings and executes the body that use these bindings. ...

Allocates a new graphene:quad-t instance. ...

Frees the resources allocated by the graphene:quad-alloc function. ...

Initializes a quadrilateral with the given points. ...

Initializes a quadrilateral using the four corners of the given rectangle. ...

Initializes a quadrilateral using a list of points. ...

Checks if the given quadrilateral contains the given point. ...

Computes the bounding rectangle of the quadrilateral. ...

Retrieves the point of a quadrilateral at the given index. ...

Triangle

The graphene:triangle-t structure represents a triangle in 3D space. ...

The graphene:with-triangle macro allocates a new graphene:triangle-t instance, initializes the triangle with the given values and executes the body that uses the box. ...

The graphene:with-triangles macro creates new variable bindings and executes the body that use these bindings. ...

Allocates a new graphene:triangle-t instance. ...

Frees the resources allocated by the graphene:triangle-alloc function. ...

Initializes a triangle using the three given 3D points. ...

Initializes a triangle using the three given vectors. ...

Initializes a triangle using the three given list of floating point values, each representing the coordinates of a point in 3D space. ...

Retrieves the three vertices of the given triangle and returns their coordinates as graphene:point3d-t instances. ...

Retrieves the three vertices of the given triangle. ...

Computes the area of the given triangle. ...

Computes the coordinates of the midpoint of the given triangle. ...

Computes the normal vector of the given triangle. ...

Computes the plane based on the vertices of the given triangle. ...

Computes the bounding box of the given triangle. ...

Computes the barycentric coordinates of the given point. ...

Computes the UV coordinates of the given point. ...

Checks whether the given triangle contains the point. ...

Checks whether the two given triangles are equal. ...

Box

The graphene:box-t structure provides a representation of an axis aligned minimum bounding box using the coordinates of its minimum and maximum vertices. ...

The graphene:with-box macro allocates a new graphene:box-t instance, initializes the box with the given values and executes the body that uses the box. ...

The graphene:with-boxes macro creates new variable bindings and executes the body that use these bindings. ...

Allocates a new graphene:box-t instance. ...

Frees the resources allocated by the graphene:box-alloc function. ...

Initializes the given graphene:box-t instance with two vertices. ...

Initializes the given graphene:box-t instance with the vertices of another graphene:box-t instance. ...

Initializes the given graphene:box-t instance with two vertices. ...

Checks whether the two given boxes are equal. ...

Expands the dimensions of box to include the coordinates at point. ...

Expands the dimensions of box by the given scalar value. ...

Expands the dimensions of box to include the coordinates of the given vector. ...

Retrieves the coordinates of the minimum point of the given box. ...

Retrieves the coordinates of the maximum point of the given box. ...

Retrieves the coordinates of the center of the box. ...

Retrieves the size of the box on the z axis. ...

Retrieves the size of the box on the y axis. ...

Retrieves the size of the box on the x axis. ...

Retrieves the size of the box on all three axes, and stores it into the given size vector. ...

Computes the bounding sphere capable of containing the given box. ...

Computes the vertices of the given box. ...

Unions the two given boxes. ...

Intersects the two given boxes. ...

Checks whether the the box a contains the given box b. ...

Checks whether the box contains the given point. ...

Returns a box with both the minimum and maximum vertices set at (0, 0, 0). ...

Returns a box with both the minimum and maximum vertices set at (1, 1, 1). ...

Returns a box with the minimum vertex set at (-1, -1, -1) and the maximum vertex set at (0, 0, 0). ...

Returns a box the minimum vertex set at (-1, -1, -1) and the maximum vertex set at (1, 1, 1). ...

Returns a degenerate box that can only be expanded. ...

Returns a degenerate box that cannot be expanded. ...

Sphere

The graphene:sphere-t structure provides a representation of a sphere using its center and radius. ...

The graphene:with-sphere macro allocates a new graphene:sphere-t instance, initializes the sphere with the given values and executes the body that uses the sphere. ...

The graphene:with-spheres macro creates new variable bindings and executes the body that use these bindings. ...

Allocates a new graphene:sphere-t instance. ...

Frees the resources allocated by the graphene:sphere-alloc function. ...

Initializes the given graphene:sphere-t instance with the given center and radius. ...

Initializes the given sphere using the given list of 3D coordinates so that the sphere includes them. ...

Initializes the given sphere using the given list of 3D coordinates so that the sphere includes them. ...

Initialize a sphere from another sphere. ...

Retrieves the coordinates of the center of a sphere. ...

Retrieves the radius of a sphere. ...

Computes the bounding box capable of containing the given sphere. ...

Checks whether the sphere has a zero radius. ...

Computes the distance of the given point from the surface of a sphere. ...

Checks whether the given point is contained in the volume of a sphere. ...

Translates the center of the given sphere using the point coordinates as the delta of the translation. ...

Checks whether two spheres are equal. ...

Frustum

The graphene:frustum-t structure represents a volume of space delimited by planes. ...

The graphene:with-frustum macro allocates a new graphene:frustum-t instance, initializes the frustum with the given values and executes the body that uses the frustum. ...

The graphene:with-frustums macro creates new variable bindings and executes the body that use these bindings. ...

Allocates a new graphene:frustum-t instance. ...

Frees the resources allocated by the graphene:frustum-alloc function. ...

Initializes the given graphene:frustum-t instance using the provided clipping planes. ...

Initializes the given graphene:frustum-t instance using the clipping planes of another graphene:frustum-t instance. ...

Initializes the given graphene:frustum-t instance using the given matrix. ...

Retrieves the planes that define the given graphene:frustum-t instance. ...

Checks whether a point is inside the volume defined by the given frustum. ...

Checks whether the given sphere intersects a plane of the frustum. ...

Checks whether the given box intersects a plane of the frustum. ...

Checks whether the given frustums are equal. ...

Vector

Evaluates to the number of components of a graphene:vec2-t structure. ...

Evaluates to the number of components of a graphene:vec3-t structure. ...

Evaluates to the number of components of a graphene:vec4-t structure. ...

The graphene:vec2-t structure is capable of holding a vector with two dimensions x and y. ...

The graphene:with-vec2 macro allocates a new graphene:vec2-t instance, initializes the vector with the given values and executes the body that uses the vector. ...

The graphene:with-vec2s macro creates new variable bindings and executes the body that use these bindings. ...

Allocates a new graphene:vec2-t instance. ...

Frees the resources allocated by v. ...

Initializes a graphene:vec2-t instance using the given values. ...

Initializes a graphene:vec2-t instance using another graphene:vec2-t instance. ...

Initializes v with the contents of the given list. ...

Stores the components of v into a list. ...

Adds each component of the two passed vectors and places each result into the components of result. ...

Subtracts from each component of the first operand a the corresponding component of the second operand b and places each result into the components of result. ...

Multiplies each component of the two passed vectors and places each result into the components of result. ...

Divides each component of the first operand a by the corresponding component of the second operand b, and places the results into the vector result. ...

Computes the dot product of the two given vectors. ...

Multiplies all components of the given vector with the given scalar factor. ...

Computes the length of the given vector. ...

Computes the normalized vector for the given vector. ...

Negates the given vector. ...

Checks whether the two given vectors are equal. ...

Compares the two given vectors and checks whether their values are within the given epsilon. ...

Compares the two given vectors and places the minimum values of each component into result. ...

Compares the two given vectors and places the maximum values of each component into result. ...

Linearly interpolates v1 and v2 using the given factor. ...

Retrieves the x component of the vector. ...

Retrieves the y component of the vector. ...

Retrieves a constant zero vector. ...

Retrieves a constant one vector. ...

Retrieves a constant vector with (1.0, 0.0) components. ...

Retrieves a constant vector with (0.0, 1.0) components. ...

The graphene:vec3-t structure is capable of holding a vector with three dimensions x, y, and z. ...

The graphene:with-vec3 macro allocates a new graphene:vec3-t instance, initializes the vector with the given values and executes the body that uses the vector. ...

The graphene:with-vec3s macro creates new variable bindings and executes the body that use these bindings. ...

Allocates a new graphene:vec3-t instance. ...

Frees the resources allocated by v. ...

Initializes a graphene:vec3-t instance using the given values. ...

Initializes a graphene:vec3-t instance using another graphene:vec3-t instance. ...

Initializes v with the contents of the given list. ...

Stores the components of v into a list. ...

Adds each component of the two passed vectors and places each result into the components of result. ...

Subtracts from each component of the first operand a the corresponding component of the second operand b and places each result into the components of result. ...

Multiplies each component of the two passed vectors and places each result into the components of result. ...

Divides each component of the first operand a by the corresponding component of the second operand b, and places the results into the vector result. ...

Computes the cross product of the two given vectors. ...

Computes the dot product of the two given vectors. ...

Multiplies all components of the given vector with the given scalar factor. ...

Computes the length of the given vector. ...

Computes the normalized vector for the given vector. ...

Negates the given vector. ...

Checks whether the two given vectors are equal. ...

Compares the two given vectors and checks whether their values are within the given epsilon. ...

Compares the two given vectors and places the minimum values of each component into result. ...

Compares the two given vectors and places the maximum values of each component into result. ...

Linearly interpolates v1 and v2 using the given factor. ...

Retrieves the x component of the vector. ...

Retrieves the y component of the vector. ...

Retrieves the z component of the vector. ...

Returns a graphene:vec2-t instance that contains the first two components of the given vector. ...

Returns a graphene:vec3-t instance that contains the first two components of the given vector, and the third component set to 0.0. ...

Returns a graphene:vec4-t instance that contains the first three components of the given vector, and the fourth component set to 0.0. ...

Returns a graphene:vec4-t instance that contains the first three components of the given vector, and the fourth component set to 1.0. ...

Returns a graphene:vec4-t instance that contains the first three components of the given vector, and the fourth component set to w. ...

Retrieves a constant zero vector. ...

Retrieves a constant one vector. ...

Retrieves a constant vector with (1.0, 0.0, 0.0) components. ...

Retrieves a constant vector with (0.0, 1.0, 0.0) components. ...

Retrieves a constant vector with (0.0, 0.0, 1.0) components. ...

The graphene:vec4-t structure is capable of holding a vector with four dimensions x, y, z and w. ...

The graphene:with-vec4 macro allocates a new graphene:vec4-t instance, initializes the vector with the given values and executes the body that uses the vector. ...

The graphene:with-vec4s macro creates new variable bindings and executes the body that use these bindings. ...

Allocates a new graphene:vec4-t instance. ...

Frees the resources allocated by v. ...

Initializes a graphene:vec4-t instance using the given values. ...

Initializes a graphene:vec4-t instance using another graphene:vec4-t instance. ...

Initializes a graphene:vec4-t instance using another graphene:vec3-t instance and the value of w. ...

Initializes a graphene:vec4-t instance using another graphene:vec2-t instance and the values of z and w. ...

Initializes v with the contents of the given list. ...

Stores the components of v into a list. ...

Adds each component of the two passed vectors and places each result into the components of result. ...

Subtracts from each component of the first operand a the corresponding component of the second operand b and places each result into the components of result. ...

Multiplies each component of the two passed vectors and places each result into the components of result. ...

Divides each component of the first operand a by the corresponding component of the second operand b, and places the results into the vector result. ...

Computes the dot product of the two given vectors. ...

Multiplies all components of the given vector with the given scalar factor. ...

Computes the length of the given vector. ...

Computes the normalized vector for the given vector. ...

Negates the given vector. ...

Checks whether the two given vectors are equal. ...

Compares the two given vectors and checks whether their values are within the given epsilon. ...

Compares the two given vectors and places the minimum values of each component into result. ...

Compares the two given vectors and places the maximum values of each component into result. ...

Linearly interpolates v1 and v2 using the given factor. ...

Retrieves the x component of the vector. ...

Retrieves the y component of the vector. ...

Retrieves the z component of the vector. ...

Retrieves the fourth component of the vector. ...

Returns a graphene:vec2-t instance that contains the first two components of the given vector. ...

Returns a graphene:vec3-t instance that contains the first three components of the given vector. ...

Retrieves a constant zero vector. ...

Retrieves a constant one vector. ...

Retrieves a constant vector with (1.0, 0.0, 0.0, 0.0) components. ...

Retrieves a constant vector with (0.0, 1.0, 0.0, 0.0) components. ...

Retrieves a constant vector with (0.0, 0.0, 1.0, 0.0) components. ...

Retrieves a constant vector with (0.0, 0.0, 0.0, 1.0) components. ...

Matrix

The graphene:matrix-t structure is a type that provides a 4x4 square matrix, useful for representing 3D transformations. ...

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. ...

The graphene:with-matrices macro creates new variable bindings and executes the body that use these bindings. ...

Allocates a new graphene:matrix-t instance. ...

Frees the resources allocated by the graphene:matrix-alloc function. ...

Initializes the matrix with the identity matrix. ...

Initializes the matrix with the given numbers. ...

Initializes the matrix with the given four row vectors. ...

Initializes the matrix using the values of the given matrix. ...

Initializes the matrix from the values of an affine transformation matrix. ...

Initializes the matrix with a perspective projection. ...

Initializes the matrix with an orthographic projection. ...

Initializes the matrix so that it positions the "camera" at the given eye coordinates towards an object at the center coordinates. ...

Initializes the matrix compatible with a frustum. ...

Initializes the matrix with the given scaling factors. ...

Initializes the matrix with a translation to given coordinates. ...

Initializes the matrix to represent a rotation of angle degrees on the axis represented by the axis vector. ...

Initializes the matrix with a skew transformation with the given factors. ...

Checks whether the given matrix is the identity matrix. ...

Checks whether the given matrix is compatible with an a 2D affine transformation matrix. ...

Checks whether the matrix has a visible back face. ...

Checks whether the matrix is singular. ...

Converts the matrix to a list of floating point values. ...

Converts the matrix to an affine transformation matrix, if the given matrix is compatible. ...

Retrieves the given row vector at index inside the matrix. ...

Retrieves the value at the given row and col index. ...

Multiplies two matrices. ...

Computes the determinant of the given matrix. ...

Transforms the given vector using the given matrix. ...

Transforms the given vector using the given matrix. ...

Transforms the given point using the given matrix. ...

Transforms the given point using the given matrix. ...

Transforms each corner of the rectangle using the given matrix. ...

Transforms each corner of the rectangle using the given matrix. ...

Transforms the vertices of the box using the given matrix. ...

Transforms the sphere using the given matrix. ...

Transforms the ray using the given matrix. ...

Projects the point using the given matrix. ...

Projects the rectangle using the given matrix. ...

Projects all corners of the rectangle using the given matrix. ...

Undoes the transformation of the point using the given matrix, within the given axis aligned rectangular bounds. ...

Undoes the transformation on the corners of the rectangle using the given matrix, within the given axis aligned rectangular bounds. ...

Unprojects the given point using the projection matrix and a modelview matrix. ...

Adds a translation transformation to the matrix using the coordinates of the given point. ...

Adds a rotation transformation to the matrix, using the given angle and axis vector. ...

Adds a rotation transformation around the X axis to the matrix, using the given angle. ...

Adds a rotation transformation around the Y axis to the matrix, using the given angle. ...

Adds a rotation transformation around the Z axis to the matrix, using the given angle. ...

Adds a rotation transformation to the matrix, using the given quaternion. ...

Adds a rotation transformation to the matrix, using the given euler angles. ...

Adds a scaling transformation to the matrix, using the three given factors. ...

Adds a skew of factor on the X and Y axis to the given matrix. ...

Adds a skew of factor on the X and Z axis to the given matrix. ...

Adds a skew of factor on the Y and Z axis to the given matrix. ...

Transposes the given matrix. ...

Inverts the given matrix. ...

Applies a perspective of depth to the matrix. ...

Normalizes the given matrix. ...

Retrieves the translation component on the X axis from the given matrix. ...

Retrieves the translation component on the Y axis from the given matrix. ...

Retrieves the translation component on the Z axis from the given matrix. ...

Retrieves the scaling factor on the X axis in the given matrix. ...

Retrieves the scaling factor on the Y axis in the given matrix. ...

Retrieves the scaling factor on the Z axis in the given matrix. ...

Decomposes a transformation matrix into its component transformations. ...

Linearly interpolates the two given matrices by interpolating the decomposed transformations separately. ...

Checks whether the two given matrices are equal. ...

Checks whether the two given matrices are byte-by-byte equal. ...

Compares the two given matrices and checks whether their values are within the given epsilon of each other. ...

Euler

Specify the order of the rotations on each axis. ...

The graphene:euler-t structure defines a rotation along three axes using three angles. ...

The graphene:with-euler macro allocates a new graphene:euler-t instance, initializes the Euler vector with the given values and executes the body that uses the Euler vector. ...

The graphene:with-eulers macro creates new variable bindings and executes the body that use these bindings. ...

Allocates a new graphene:euler-t instance. ...

Frees the resources allocated by the graphene:euler-alloc function. ...

Initializes a graphene:euler-t instance using the given angles and the given order. ...

Initializes a graphene:euler-t instance using the given rotation matrix. ...

Initializes a graphene:euler-t instance using the given normalized quaternion. ...

Initializes a graphene:euler-t instance using the angles contained in the vector. ...

Initializes a graphene:euler-t instance using the angles and order of another graphene:euler-t instance. ...

Initializes a graphene:euler-t instance using the given angles in radians and the optional order of rotation. ...

Checks if two graphene:euler-t instances are equal. ...

Retrieves the rotation angle on the X axis, in degrees. ...

Retrieves the rotation angle on the Y axis, in degrees. ...

Retrieves the rotation angle on the Z axis, in degrees. ...

Retrieves the order used to apply the rotations described in the graphene:euler-t instance, when converting to and from other instances, like graphene:quaternion-t and graphene:matrix-t instances. ...

Retrieves the first component of the Euler angle vector, depending on the order of rotation. ...

Retrieves the second component of the Euler angle vector, depending on the order of rotation. ...

Retrieves the third component of the Euler angle vector, depending on the order of rotation. ...

Retrieves the angles of a graphene:euler-t instance and initializes a graphene:vec3-t instance with them. ...

Converts a graphene:euler-t instance into a transformation matrix expressing the extrinsic composition of rotations described by the Euler angles. ...

Converts a graphene:euler-t instance into a graphene:quaternion-t instance. ...

Reorders a graphene:euler-t instance using order. ...

Quaternion

Quaternions are a mathematical entity that can be used to represent rotation transformations in 3D space. ...

The graphene:with-quaternion macro allocates a new graphene:quaternion-t instance, initializes the box with the given values and executes the body that uses the box. ...

The graphene:with-quaternions macro creates new variable bindings and executes the body that use these bindings. ...

Allocates a new graphene:quaternion-t instance. ...

Frees the resources allocated by the graphene:quaternion-alloc function. ...

Initializes a quaternion using the given four values. ...

Initializes a quaternion using the identity transformation. ...

Initializes a quaternion with the values from source. ...

Initializes a quaternion with the values from source. ...

Initializes a quaternion using the rotation components of a transformation matrix. ...

Initializes a quaternion using the values of the Euler angles on each axis. ...

Initializes a quaternion using the values of the Euler angles on each axis. ...

Initializes a quaternion using an angle on a specific axis. ...

Initializes a quaternion using the given graphene:euler-t instance. ...

Copies the components of a quaternion into a graphene:vec4-t instances. ...

Converts a quaternion into a transformation matrix expressing the rotation defined by the quaternion. ...

Converts a quaternion to its corresponding rotations on the Euler angles on each axis. ...

Converts a quaternion to its corresponding rotations on the Euler angles on each axis. ...

Converts a quaternion into an angle and an axis pair. ...

Checks whether the given quaternions are equal. ...

Computes the dot product of two quaternions. ...

Inverts a quaternion and returns the conjugate quaternion. ...

Normalizes a quaternion. ...

Adds two quaternions a and b. ...

Multiplies two quaternions a and b. ...

Scales all the elements of a quaternion using the given scalar factor. ...

The graphene:quaternion-t instance with the interpolated quaternion. ...

Plane

The graphene:plane-t structure is a structure representing a plane that extends infinitely in 3D space. ...

The graphene:with-plane macro allocates a new graphene:plane-t instance, initializes the box with the given values and executes the body that uses the box. ...

The graphene:with-planes macro creates new variable bindings and executes the body that use these bindings. ...

Allocates a new graphene:plane-t instance. ...

Frees the resources allocated by the graphene:plane-alloc function. ...

Initializes the given plane using the given normal vector and constant value. ...

Initializes the given plane using the components of the given vector. ...

Initializes the given plane using the normal vector and constant of another plane. ...

Initializes the given plane using the given normal vector and an arbitrary co-planar point. ...

Initializes the given plane using the 3 provided co-planar points. ...

Normalizes the vector of the given plane, and adjusts the constant accordingly. ...

Negates the normal vector and constant of the plane, effectively mirroring the plane across the origin. ...

Checks whether the two given planes are equal. ...

Computes the distance of the point from the plane. ...

Transforms a plane using the given matrix and normal matrix. ...

Retrieves the normal vector pointing towards the origin of the given plane. ...

Retrieves the distance along the normal vector of the given plane from the origin. ...

Ray

The type of intersection. ...

The graphene:ray-t structure is a structure representing a ray emitted by an origin, identified by a point in 3D space, in a given direction, identified by a vector with 3 components. ...

The graphene:with-ray macro allocates a new graphene:ray-t instance, initializes the box with the given values and executes the body that uses the ray. ...

The graphene:with-rays macro creates new variable bindings and executes the body that use these bindings. ...

Allocates a new graphene:ray-t instance. ...

Frees the resources allocated by the graphene:ray-alloc function. ...

Initializes the given graphene:ray-t instance using the given origin and direction values. ...

Initializes the given ray using the origin and direction values of another ray. ...

Initializes the given ray using the given vectors. ...

Retrieves the origin of the given ray. ...

Retrieves the direction of the given ray. ...

Retrieves the coordinates of a point at the distance parameter along the given ray. ...

Computes the distance of the closest approach between the given ray and the point. ...

Computes the distance of the origin of the given ray from the given plane. ...

Computes the point on the given ray that is closest to the given point. ...

Checks whether the two given rays are equal. ...

Intersects the given ray with the given sphere. ...

Checks if the given ray intersects the given sphere. ...

Intersects the given ray with the given box. ...

Checks if the given ray intersects the given box. ...

Intersects the given ray with the given triangle. ...

Checks if the given ray intersects the given triangle. ...

Exported Symbol Index

box-alloc, Function
box-bounding-sphere, Function
box-center, Function
box-contains-box, Function
box-contains-point, Function
box-depth, Function
box-empty, Function
box-equal, Function
box-expand, Function
box-expand-scalar, Function
box-expand-vec3, Function
box-free, Function
box-height, Function
box-infinite, Function
box-init, Function
box-init-from-box, Function
box-init-from-vec3, Function
box-intersection, Function
box-max, Function
box-min, Function
box-minus-one, Function
box-one, Function
box-one-minus-one, Function
box-size, Function
box-union, Function
box-vertices, Function
box-width, Function
box-zero, Function
euler-alloc, Function
euler-alpha, Function
euler-beta, Function
euler-equal, Function
euler-free, Function
euler-gamma, Function
euler-init, Function
euler-init-from-euler, Function
euler-init-from-matrix, Function
euler-init-from-quaternion, Function
euler-init-from-radians, Function
euler-init-from-vec3, Function
euler-order, Function
euler-reorder, Function
euler-to-matrix, Function
euler-to-quaternion, Function
euler-to-vec3, Function
euler-x, Function
euler-y, Function
euler-z, Function
frustum-alloc, Function
frustum-contains-point, Function
frustum-equal, Function
frustum-free, Function
frustum-init, Function
frustum-init-from-frustum, Function
frustum-init-from-matrix, Function
frustum-intersects-box, Function
frustum-intersects-sphere, Function
frustum-planes, Function
matrix-alloc, Function
matrix-decompose, Function
matrix-determinant, Function
matrix-equal, Function
matrix-equal-fast, Function
matrix-free, Function
matrix-init-from-2d, Function
matrix-init-from-float, Function
matrix-init-from-matrix, Function
matrix-init-from-vec4, Function
matrix-init-frustum, Function
matrix-init-identity, Function
matrix-init-look-at, Function
matrix-init-ortho, Function
matrix-init-perspective, Function
matrix-init-rotate, Function
matrix-init-scale, Function
matrix-init-skew, Function
matrix-init-translate, Function
matrix-interpolate, Function
matrix-inverse, Function
matrix-is-2d, Function
matrix-is-backface-visible, Function
matrix-is-identity, Function
matrix-is-singular, Function
matrix-multiply, Function
matrix-near, Function
matrix-normalize, Function
matrix-perspective, Function
matrix-project-point, Function
matrix-project-rect, Function
matrix-project-rect-bounds, Function
matrix-rotate, Function
matrix-rotate-euler, Function
matrix-rotate-quaternion, Function
matrix-rotate-x, Function
matrix-rotate-y, Function
matrix-rotate-z, Function
matrix-row, Function
matrix-scale, Function
matrix-skew-xy, Function
matrix-skew-xz, Function
matrix-skew-yz, Function
matrix-to-2d, Function
matrix-to-float, Function
matrix-transform-bounds, Function
matrix-transform-box, Function
matrix-transform-point, Function
matrix-transform-point3d, Function
matrix-transform-ray, Function
matrix-transform-rect, Function
matrix-transform-sphere, Function
matrix-transform-vec3, Function
matrix-transform-vec4, Function
matrix-translate, Function
matrix-transpose, Function
matrix-unproject-point3d, Function
matrix-untransform-bounds, Function
matrix-untransform-point, Function
matrix-value, Function
matrix-x-scale, Function
matrix-x-translation, Function
matrix-y-scale, Function
matrix-y-translation, Function
matrix-z-scale, Function
matrix-z-translation, Function
plane-alloc, Function
plane-constant, Function
plane-distance, Function
plane-equal, Function
plane-free, Function
plane-init, Function
plane-init-from-plane, Function
plane-init-from-point, Function
plane-init-from-points, Function
plane-init-from-vec4, Function
plane-negate, Function
plane-normal, Function
plane-normalize, Function
plane-transform, Function
point-alloc, Function
point-distance, Function
point-equal, Function
point-free, Function
point-init, Function
point-init-from-point, Function
point-init-from-vec2, Function
point-interpolate, Function
point-near, Function
point-to-vec2, Function
point-x, Accessor
point-y, Accessor
point-zero, Function
point3d-alloc, Function
point3d-cross, Function
point3d-distance, Function
point3d-dot, Function
point3d-equal, Function
point3d-free, Function
point3d-init, Function
point3d-init-from-point, Function
point3d-init-from-vec3, Function
point3d-interpolate, Function
point3d-length, Function
point3d-near, Function
point3d-normalize, Function
point3d-normalize-viewport, Function
point3d-scale, Function
point3d-to-vec3, Function
point3d-x, Accessor
point3d-y, Accessor
point3d-z, Accessor
point3d-zero, Function
quad-alloc, Function
quad-bounds, Function
quad-contains, Function
quad-free, Function
quad-init, Function
quad-init-from-points, Function
quad-init-from-rect, Function
quad-point, Function
quaternion-add, Function
quaternion-alloc, Function
quaternion-dot, Function
quaternion-equal, Function
quaternion-free, Function
quaternion-init, Function
quaternion-init-from-angle-vec3, Function
quaternion-init-from-angles, Function
quaternion-init-from-euler, Function
quaternion-init-from-matrix, Function
quaternion-init-from-quaternion, Function
quaternion-init-from-radians, Function
quaternion-init-from-vec4, Function
quaternion-init-identity, Function
quaternion-invert, Function
quaternion-multiply, Function
quaternion-normalize, Function
quaternion-scale, Function
quaternion-slerp, Function
quaternion-to-angle-vec3, Function
quaternion-to-angles, Function
quaternion-to-matrix, Function
quaternion-to-radians, Function
quaternion-to-vec4, Function
ray-alloc, Function
ray-closest-point-to-point, Function
ray-direction, Function
ray-distance-to-plane, Function
ray-distance-to-point, Function
ray-equal, Function
ray-free, Function
ray-init, Function
ray-init-from-ray, Function
ray-init-from-vec3, Function
ray-intersect-box, Function
ray-intersect-sphere, Function
ray-intersect-triangle, Function
ray-intersects-box, Function
ray-intersects-sphere, Function
ray-intersects-triangle, Function
ray-origin, Function
ray-position-at, Function
rect-alloc, Function
rect-area, Function
rect-bottom-left, Function
rect-bottom-right, Function
rect-center, Function
rect-contains-point, Function
rect-contains-rect, Function
rect-equal, Function
rect-expand, Function
rect-free, Function
rect-height, Function
rect-init, Function
rect-init-from-rect, Function
rect-inset, Function
rect-inset-r, Function
rect-interpolate, Function
rect-intersection, Function
rect-normalize, Function
rect-offset, Function
rect-offset-r, Function
rect-origin, Accessor
rect-round-extents, Function
rect-scale, Function
rect-size, Accessor
rect-top-left, Function
rect-top-right, Function
rect-union, Function
rect-vertices, Function
rect-width, Function
rect-x, Function
rect-y, Function
rect-zero, Function
size-alloc, Function
size-equal, Function
size-free, Function
size-height, Accessor
size-init, Function
size-init-from-size, Function
size-interpolate, Function
size-scale, Function
size-width, Accessor
size-zero, Function
sphere-alloc, Function
sphere-bounding-box, Function
sphere-center, Function
sphere-contains-point, Function
sphere-distance, Function
sphere-equal, Function
sphere-free, Function
sphere-init, Function
sphere-init-from-points, Function
sphere-init-from-sphere, Function
sphere-init-from-vectors, Function
sphere-is-empty, Function
sphere-radius, Function
sphere-translate, Function
triangle-alloc, Function
triangle-area, Function
triangle-barycoords, Function
triangle-bounding-box, Function
triangle-contains-point, Function
triangle-equal, Function
triangle-free, Function
triangle-init-from-float, Function
triangle-init-from-point3d, Function
triangle-init-from-vec3, Function
triangle-midpoint, Function
triangle-normal, Function
triangle-plane, Function
triangle-points, Function
triangle-uv, Function
triangle-vertices, Function
vec2-add, Function
vec2-alloc, Function
vec2-divide, Function
vec2-dot, Function
vec2-equal, Function
vec2-free, Function
vec2-init, Function
vec2-init-from-float, Function
vec2-init-from-vec2, Function
vec2-interpolate, Function
vec2-length, Function
vec2-max, Function
vec2-min, Function
vec2-multiply, Function
vec2-near, Function
vec2-negate, Function
vec2-normalize, Function
vec2-one, Function
vec2-scale, Function
vec2-subtract, Function
vec2-to-float, Function
vec2-x, Function
vec2-x-axis, Function
vec2-y, Function
vec2-y-axis, Function
vec2-zero, Function
vec3-add, Function
vec3-alloc, Function
vec3-cross, Function
vec3-divide, Function
vec3-dot, Function
vec3-equal, Function
vec3-free, Function
vec3-init, Function
vec3-init-from-float, Function
vec3-init-from-vec3, Function
vec3-interpolate, Function
vec3-length, Function
vec3-max, Function
vec3-min, Function
vec3-multiply, Function
vec3-near, Function
vec3-negate, Function
vec3-normalize, Function
vec3-one, Function
vec3-scale, Function
vec3-subtract, Function
vec3-to-float, Function
vec3-x, Function
vec3-x-axis, Function
vec3-xy, Function
vec3-xy0, Function
vec3-xyz0, Function
vec3-xyz1, Function
vec3-xyzw, Function
vec3-y, Function
vec3-y-axis, Function
vec3-z, Function
vec3-z-axis, Function
vec3-zero, Function
vec4-add, Function
vec4-alloc, Function
vec4-divide, Function
vec4-dot, Function
vec4-equal, Function
vec4-free, Function
vec4-init, Function
vec4-init-from-float, Function
vec4-init-from-vec2, Function
vec4-init-from-vec3, Function
vec4-init-from-vec4, Function
vec4-interpolate, Function
vec4-length, Function
vec4-max, Function
vec4-min, Function
vec4-multiply, Function
vec4-near, Function
vec4-negate, Function
vec4-normalize, Function
vec4-one, Function
vec4-scale, Function
vec4-subtract, Function
vec4-to-float, Function
vec4-w, Function
vec4-w-axis, Function
vec4-x, Function
vec4-x-axis, Function
vec4-xy, Function
vec4-xyz, Function
vec4-y, Function
vec4-y-axis, Function
vec4-z, Function
vec4-z-axis, Function
vec4-zero, Function
with-box, Macro
with-boxes, Macro
with-euler, Macro
with-eulers, Macro
with-frustum, Macro
with-frustums, Macro
with-matrices, Macro
with-matrix, Macro
with-object, Macro  (undocumented)
with-objects, Macro
with-plane, Macro
with-planes, Macro
with-point, Macro
with-point3d, Macro
with-point3ds, Macro
with-points, Macro
with-quad, Macro
with-quads, Macro
with-quaternion, Macro
with-quaternions, Macro
with-ray, Macro
with-rays, Macro
with-rect, Macro
with-rects, Macro
with-size, Macro
with-sizes, Macro
with-sphere, Macro
with-spheres, Macro
with-triangle, Macro
with-triangles, Macro
with-vec2, Macro
with-vec2s, Macro
with-vec3, Macro
with-vec3s, Macro
with-vec4, Macro
with-vec4s, Macro
box-t, CStruct
euler-order-t, CEnum
euler-t, CStruct
frustum-t, CStruct
matrix-t, CStruct
plane-t, CStruct
point-t, CStruct
point3d-t, CStruct
quad-t, CStruct
quaternion-t, CStruct
ray-intersection-kind-t, CEnum
ray-t, CStruct
rect-t, CStruct
size-t, CStruct
sphere-t, CStruct
triangle-t, CStruct
vec2-t, CStruct
vec3-t, CStruct
vec4-t, CStruct
+vec2-len+, Constant
+vec3-len+, Constant
+vec4-len+, Constant