|
enum | Side { SIDE_OVER,
SIDE_UNDER,
SIDE_SPANNING,
SIDE_COPLANAR
} |
|
|
int | split_by_plane (const Plane &p_plane, Face3 *p_res, bool *p_is_point_over) const |
|
Plane | get_plane (ClockDirection p_dir=CLOCKWISE) const |
|
Vector3 | get_random_point_inside () const |
|
Side | get_side_of (const Face3 &p_face, ClockDirection p_clock_dir=CLOCKWISE) const |
|
bool | is_degenerate () const |
|
real_t | get_area () const |
|
Vector3 | get_median_point () const |
|
Vector3 | get_closest_point_to (const Vector3 &p_point) const |
|
bool | intersects_ray (const Vector3 &p_from, const Vector3 &p_dir, Vector3 *p_intersection=0) const |
|
bool | intersects_segment (const Vector3 &p_from, const Vector3 &p_dir, Vector3 *p_intersection=0) const |
|
ClockDirection | get_clock_dir () const |
| todo, test if this is returning the proper clockwisity
|
|
void | get_support (const Vector3 &p_normal, const Transform &p_transform, Vector3 *p_vertices, int *p_count, int p_max) const |
|
void | project_range (const Vector3 &p_normal, const Transform &p_transform, float &r_min, float &r_max) const |
|
AABB | get_aabb () const |
|
bool | intersects_aabb (const AABB &p_aabb) const |
|
_FORCE_INLINE_ bool | intersects_aabb2 (const AABB &p_aabb) const |
|
| operator String () const |
|
| Face3 (const Vector3 &p_v1, const Vector3 &p_v2, const Vector3 &p_v3) |
|
void Face3::get_support |
( |
const Vector3 & |
p_normal, |
|
|
const Transform & |
p_transform, |
|
|
Vector3 * |
p_vertices, |
|
|
int * |
p_count, |
|
|
int |
p_max |
|
) |
| const |
TEST FACE AS SUPPORT
FIND SUPPORT VERTEX
TEST EDGES AS SUPPORT
bool Face3::intersects_aabb |
( |
const AABB & |
p_aabb | ) |
const |
TEST PLANE
TEST FACE AXIS
TEST ALL EDGES
int Face3::split_by_plane |
( |
const Plane & |
p_plane, |
|
|
Face3 * |
p_res, |
|
|
bool * |
p_is_point_over |
|
) |
| const |
- Parameters
-
p_plane | plane used to split the face |
p_res | array of at least 3 faces, amount used in functio return |
p_is_point_over | array of at least 3 booleans, determining which face is over the plane, amount used in functio return |
_epsilon | constant used for numerical error rounding, to add "thickness" to the plane (so coplanar points can happen) |
- Returns
- amount of faces generated by the split, either 0 (means no split possible), 2 or 3
The documentation for this class was generated from the following files:
- /Users/huihoo/Downloads/godot-2.0.4-stable/core/math/face3.h
- /Users/huihoo/Downloads/godot-2.0.4-stable/core/math/face3.cpp