NO_TITLE
Table of Contents
Gnome::Graphene::N-Plane§
Description§
A 2D plane that extends infinitely in a 3D volume.
The contents of the Gnome::Graphene::N-Plane are private, and should not be modified directly.
Class initialization§
new§
:native-object§
Create an object using a native object from an object of the same type found elsewhere. See also Gnome::N::TopLevelSupportClass.
multi method new ( N-Object() :$native-object! )
alloc§
Allocates a new Gnome::Graphene::N-Plane structure.
The contents of the returned structure are undefined.
method alloc ( --> Gnome::Graphene::Plane \)
Methods§
distance§
Computes the distance of $point from a Gnome::Graphene::N-Plane.
method distance ( N-Object $point --> Num )
- $point; a graphene_point3d_t
Return value; the distance of the given graphene_point3d_t from the plane.
equal§
Checks whether the two given Gnome::Graphene::N-Plane are equal.
method equal ( N-Object $b --> gboolean )
- $b; a Gnome::Graphene::N-Plane
Return value; true if the given planes are equal.
free§
Frees the resources allocated by .alloc().
method free ( )
get-constant§
Retrieves the distance along the normal vector of the given Gnome::Graphene::N-Plane from the origin.
method get-constant (--> Num )
Return value; the constant value of the plane.
get-normal§
Retrieves the normal vector pointing towards the origin of the given Gnome::Graphene::N-Plane.
method get-normal ( N-Object $normal )
- $normal; return location for the normal vector
init§
Initializes the given Gnome::Graphene::N-Plane using the given $normal vector and $constant values.
method init ( N-Object $normal, Num() $constant --> N-Object )
- $normal; a unit length normal vector defining the plane pointing towards the origin; if unset, we use the X axis by default
- $constant; the distance from the origin to the plane along the normal vector; the sign determines the half-space occupied by the plane.
Return value; the initialized plane.
init-from-plane§
Initializes the given Gnome::Graphene::N-Plane using the normal vector and constant of another Gnome::Graphene::N-Plane.
method init-from-plane ( N-Object $src --> N-Object )
- $src; a Gnome::Graphene::N-Plane
Return value; the initialized plane.
init-from-point§
Initializes the given Gnome::Graphene::N-Plane using the given normal vector and an arbitrary co-planar point.
method init-from-point ( N-Object $normal, N-Object $point --> N-Object )
- $normal; a normal vector defining the plane pointing towards the origin
- $point; a graphene_point3d_t
Return value; the initialized plane.
init-from-points§
Initializes the given Gnome::Graphene::N-Plane using the 3 provided co-planar points.
The winding order is counter-clockwise, and determines which direction the normal vector will point.
method init-from-points ( N-Object $a, N-Object $b, N-Object $c --> N-Object )
- $a; a graphene_point3d_t
- $b; a graphene_point3d_t
- $c; a graphene_point3d_t
Return value; the initialized plane.
init-from-vec4§
Initializes the given Gnome::Graphene::N-Plane using the components of the given graphene_vec4_t vector.
method init-from-vec4 ( N-Object $src --> N-Object )
- $src; a graphene_vec4_t containing the normal vector in its first three components, and the distance in its fourth component
Return value; the initialized plane.
negate§
Negates the normal vector and constant of a Gnome::Graphene::N-Plane, effectively mirroring the plane across the origin.
method negate ( N-Object $res )
- $res; return location for the negated plane
normalize§
Normalizes the vector of the given Gnome::Graphene::N-Plane, and adjusts the constant accordingly.
method normalize ( N-Object $res )
- $res; return location for the normalized plane
transform§
Transforms a Gnome::Graphene::N-Plane $p using the given $matrix and $normal-matrix.
If $normal-matrix is undefined, a transformation matrix for the plane normal will be computed from $matrix. If you are transforming multiple planes using the same $matrix it's recommended to compute the normal matrix beforehand to avoid incurring in the cost of recomputing it every time.
method transform ( N-Object $matrix, N-Object $normal-matrix, N-Object $res )
- $matrix; a Gnome::Graphene::N-Matrix
- $normal-matrix; a Gnome::Graphene::N-Matrix
- $res; the transformed plane
About my projects, examples and tutorials