| Top |
| graphene_plane_t * | graphene_plane_alloc () |
| void | graphene_plane_free () |
| graphene_plane_t * | graphene_plane_init () |
| graphene_plane_t * | graphene_plane_init_from_vec4 () |
| graphene_plane_t * | graphene_plane_init_from_plane () |
| graphene_plane_t * | graphene_plane_init_from_point () |
| graphene_plane_t * | graphene_plane_init_from_points () |
| void | graphene_plane_normalize () |
| void | graphene_plane_negate () |
| bool | graphene_plane_equal () |
| float | graphene_plane_distance () |
| void | graphene_plane_get_normal () |
| float | graphene_plane_get_constant () |
graphene_plane_t is a structure representing a plane in 3D space, using a normal vector pointing towards the origin, and a constant distance from the origin along the normal vector.
graphene_plane_t *
graphene_plane_alloc (void);
Allocates a new graphene_plane_t structure.
The contents of the returned structure are undefined.
[constructor]
the newly allocated graphene_plane_t.
Use graphene_plane_free() to free the resources allocated by
this function.
[transfer full]
Since: 1.2
void
graphene_plane_free (graphene_plane_t *p);
Frees the resources allocated by graphene_plane_alloc().
Since: 1.2
graphene_plane_t * graphene_plane_init (graphene_plane_t *p,const graphene_vec3_t *normal,float constant);
Initializes the given graphene_plane_t using the given normal
vector
and constant
values.
p |
the graphene_plane_t to initialize |
|
normal |
a normal vector defining the plane pointing towards the origin. |
[nullable] |
constant |
the negative distance from the origin to the plane along the normal vector |
Since: 1.2
graphene_plane_t * graphene_plane_init_from_vec4 (graphene_plane_t *p,const graphene_vec4_t *src);
Initializes the given graphene_plane_t using the components of the given graphene_vec4_t vector.
p |
the graphene_plane_t to initialize |
|
src |
a graphene_vec4_t containing the normal vector in its first three components, and the distance in its fourth component |
Since: 1.2
graphene_plane_t * graphene_plane_init_from_plane (graphene_plane_t *p,const graphene_plane_t *src);
Initializes the given graphene_plane_t using the normal vector and constant of another graphene_plane_t.
Since: 1.2
graphene_plane_t * graphene_plane_init_from_point (graphene_plane_t *p,const graphene_vec3_t *normal,const graphene_point3d_t *point);
Initializes the given graphene_plane_t using the given normal vector and an arbitrary co-planar point.
p |
the graphene_plane_t to initialize |
|
normal |
a normal vector defining the plane pointing towards the origin |
|
point |
Since: 1.2
graphene_plane_t * graphene_plane_init_from_points (graphene_plane_t *p,const graphene_point3d_t *a,const graphene_point3d_t *b,const graphene_point3d_t *c);
Initializes the given graphene_plane_t using the 3 provided co-planar points.
The winding order is counter-clockwise, and determines which direction the normal vector will point.
Since: 1.2
void graphene_plane_normalize (const graphene_plane_t *p,graphene_plane_t *res);
Normalizes the vector and constant of a graphene_plane_t.
Since: 1.2
void graphene_plane_negate (const graphene_plane_t *p,graphene_plane_t *res);
Negates the normal vector and constant of a graphene_plane_t, effectively mirroring the plane across the origin.
Since: 1.2
bool graphene_plane_equal (const graphene_plane_t *a,const graphene_plane_t *b);
Checks whether the two given graphene_plane_t are equal.
Since: 1.2
float graphene_plane_distance (const graphene_plane_t *p,const graphene_point3d_t *point);
Computes the distance of point
from a graphene_plane_t.
Since: 1.2
void graphene_plane_get_normal (const graphene_plane_t *p,graphene_vec3_t *normal);
Retrieves the normal vector pointing towards the origin of the given graphene_plane_t.
Since: 1.2
float
graphene_plane_get_constant (const graphene_plane_t *p);
Retrieves the distance along the normal vector of the given graphene_plane_t from the origin.
Since: 1.2
typedef struct {
} graphene_plane_t;
A 2D plane that extends infinitely in a 3D volume.
The contents of the graphene_plane_t are private, and should not be
modified directly.
Since: 1.2