| Top |  |  |  |  | 
| graphene_triangle_t * | graphene_triangle_alloc () | 
| void | graphene_triangle_free () | 
| graphene_triangle_t * | graphene_triangle_init_from_point3d () | 
| graphene_triangle_t * | graphene_triangle_init_from_vec3 () | 
| void | graphene_triangle_get_points () | 
| void | graphene_triangle_get_vertices () | 
| float | graphene_triangle_get_area () | 
| void | graphene_triangle_get_midpoint () | 
| void | graphene_triangle_get_normal () | 
| void | graphene_triangle_get_plane () | 
| void | graphene_triangle_get_bounding_box () | 
| bool | graphene_triangle_get_barycoords () | 
| bool | graphene_triangle_contains_point () | 
| bool | graphene_triangle_equal () | 
graphene_triangle_t *
graphene_triangle_alloc (void);
Allocates a new graphene_triangle_t.
The contents of the returned structure are undefined.
[constructor]
the newly allocated graphene_triangle_t
structure. Use graphene_triangle_free() to free the resources
allocated by this function. 
[transfer full]
Since: 1.2
void
graphene_triangle_free (graphene_triangle_t *t);
Frees the resources allocated by graphene_triangle_alloc().
Since: 1.2
graphene_triangle_t * graphene_triangle_init_from_point3d (graphene_triangle_t *t,const graphene_point3d_t *a,const graphene_point3d_t *b,const graphene_point3d_t *c);
Initializes a graphene_triangle_t using the three given 3D points.
Since: 1.2
graphene_triangle_t * graphene_triangle_init_from_vec3 (graphene_triangle_t *t,const graphene_vec3_t *a,const graphene_vec3_t *b,const graphene_vec3_t *c);
Initializes a graphene_triangle_t using the three given vectors.
Since: 1.2
void graphene_triangle_get_points (const graphene_triangle_t *t,graphene_point3d_t *a,graphene_point3d_t *b,graphene_point3d_t *c);
Retrieves the three vertices of the given graphene_triangle_t and returns their coordinates as graphene_point3d_t.
| t | ||
| a | return location for the coordinates of the first vertex. | [out caller-allocates][optional] | 
| b | return location for the coordinates of the second vertex. | [out caller-allocates][optional] | 
| c | return location for the coordinates of the third vertex. | [out caller-allocates][optional] | 
Since: 1.2
void graphene_triangle_get_vertices (const graphene_triangle_t *t,graphene_vec3_t *a,graphene_vec3_t *b,graphene_vec3_t *c);
Retrieves the three vertices of the given graphene_triangle_t.
| t | ||
| a | return location for the first vertex. | [out caller-allocates][optional] | 
| b | return location for the second vertex. | [out caller-allocates][optional] | 
| c | return location for the third vertex. | [out caller-allocates][optional] | 
Since: 1.2
float
graphene_triangle_get_area (const graphene_triangle_t *t);
Computes the area of the given graphene_triangle_t.
Since: 1.2
void graphene_triangle_get_midpoint (const graphene_triangle_t *t,graphene_point3d_t *res);
Computes the coordinates of the midpoint of the given graphene_triangle_t.
The midpoint G is the centroid of the triangle, i.e. the intersection of its medians.
Since: 1.2
void graphene_triangle_get_normal (const graphene_triangle_t *t,graphene_vec3_t *res);
Computes the normal vector of the given graphene_triangle_t.
Since: 1.2
void graphene_triangle_get_plane (const graphene_triangle_t *t,graphene_plane_t *res);
Computes the plane based on the vertices of the given graphene_triangle_t.
Since: 1.2
void graphene_triangle_get_bounding_box (const graphene_triangle_t *t,graphene_box_t *res);
Computes the bounding box of the given graphene_triangle_t.
Since: 1.2
bool graphene_triangle_get_barycoords (const graphene_triangle_t *t,const graphene_point3d_t *p,graphene_vec2_t *res);
Computes the barycentric coordinates
of the given point p
.
The point p
 must lie on the same plane as the triangle t
; if the
point is not coplanar, the result of this function is undefined.
If we place the origin in the coordinates of the triangle's A point,
the barycentric coordinates are u, which is on the AC vector; and v
which is on the AB vector:

The returned graphene_vec2_t contains the following values, in order:
res.x = u
res.y = v
| t | ||
| p | [nullable] | |
| res | return location for the vector with the barycentric coordinates. | [out caller-allocates] | 
Since: 1.2
bool graphene_triangle_contains_point (const graphene_triangle_t *t,const graphene_point3d_t *p);
Checks whether the given triangle t
 contains the point p
.
Since: 1.2
bool graphene_triangle_equal (const graphene_triangle_t *a,const graphene_triangle_t *b);
Checks whether the two given graphene_triangle_t are equal.
Since: 1.2