#include "GIMPACT/core/gim_linear_math.h"Defines | |
| #define | PLANEDIREPSILON 0.0000001f |
| #define | PARALELENORMALS 0.000001f |
| #define | TRIANGLE_NORMAL(v1, v2, v3, n) |
| #define | TRIANGLE_NORMAL_FAST(v1, v2, v3, n) |
| #define | TRIANGLE_PLANE(v1, v2, v3, plane) |
| plane is a vec4f | |
| #define | TRIANGLE_PLANE_FAST(v1, v2, v3, plane) |
| plane is a vec4f | |
| #define | EDGE_PLANE(e1, e2, n, plane) |
| Calc a plane from an edge an a normal. plane is a vec4f. | |
| #define | DISTANCE_PLANE_POINT(plane, point) (VEC_DOT(plane,point) - plane[3]) |
| #define | PROJECT_POINT_PLANE(point, plane, projected) |
| #define | PLANE_MINOR_AXES(plane, i0, i1) VEC_MINOR_AXES(plane, i0, i1) |
| Finds the 2 smallest cartesian coordinates of a plane normal. | |
Enumerations | |
| enum | ePLANE_INTERSECTION_TYPE { G_BACK_PLANE = 0, G_COLLIDE_PLANE, G_FRONT_PLANE } |
| enum | eLINE_PLANE_INTERSECTION_TYPE { G_FRONT_PLANE_S1 = 0, G_FRONT_PLANE_S2, G_BACK_PLANE_S1, G_BACK_PLANE_S2, G_COLLIDE_PLANE_S1, G_COLLIDE_PLANE_S2 } |
Functions | |
| template<typename CLASS_POINT, typename CLASS_PLANE> | |
| SIMD_FORCE_INLINE bool | POINT_IN_HULL (const CLASS_POINT &point, const CLASS_PLANE *planes, GUINT plane_count) |
| Verifies if a point is in the plane hull. | |
| template<typename CLASS_POINT, typename CLASS_PLANE> | |
| SIMD_FORCE_INLINE void | PLANE_CLIP_SEGMENT (const CLASS_POINT &s1, const CLASS_POINT &s2, const CLASS_PLANE &plane, CLASS_POINT &clipped) |
| template<typename CLASS_POINT, typename CLASS_PLANE> | |
| SIMD_FORCE_INLINE eLINE_PLANE_INTERSECTION_TYPE | PLANE_CLIP_SEGMENT2 (const CLASS_POINT &s1, const CLASS_POINT &s2, const CLASS_PLANE &plane, CLASS_POINT &clipped) |
| Confirms if the plane intersect the edge or nor. | |
| template<typename CLASS_POINT, typename CLASS_PLANE> | |
| SIMD_FORCE_INLINE eLINE_PLANE_INTERSECTION_TYPE | PLANE_CLIP_SEGMENT_CLOSEST (const CLASS_POINT &s1, const CLASS_POINT &s2, const CLASS_PLANE &plane, CLASS_POINT &clipped1, CLASS_POINT &clipped2) |
| Confirms if the plane intersect the edge or not. | |
| template<typename T, typename CLASS_POINT, typename CLASS_PLANE> | |
| SIMD_FORCE_INLINE bool | RAY_PLANE_COLLISION (const CLASS_PLANE &plane, const CLASS_POINT &vDir, const CLASS_POINT &vPoint, CLASS_POINT &pout, T &tparam) |
| Ray plane collision in one way. | |
| template<typename T, typename CLASS_POINT, typename CLASS_PLANE> | |
| SIMD_FORCE_INLINE GUINT | LINE_PLANE_COLLISION (const CLASS_PLANE &plane, const CLASS_POINT &vDir, const CLASS_POINT &vPoint, CLASS_POINT &pout, T &tparam, T tmin, T tmax) |
| line collision | |
| template<typename CLASS_POINT, typename CLASS_PLANE> | |
| SIMD_FORCE_INLINE bool | INTERSECT_PLANES (const CLASS_PLANE &p1, const CLASS_PLANE &p2, CLASS_POINT &p, CLASS_POINT &d) |
| Returns the Ray on which 2 planes intersect if they do. Written by Rodrigo Hernandez on ODE convex collision. | |
| template<typename CLASS_POINT> | |
| SIMD_FORCE_INLINE void | CLOSEST_POINT_ON_SEGMENT (CLASS_POINT &cp, const CLASS_POINT &v, const CLASS_POINT &e1, const CLASS_POINT &e2) |
| template<typename T, typename CLASS_POINT> | |
| SIMD_FORCE_INLINE bool | LINE_INTERSECTION_PARAMS (const CLASS_POINT &dir1, CLASS_POINT &point1, const CLASS_POINT &dir2, CLASS_POINT &point2, T &t1, T &t2) |
| Finds the line params where these lines intersect. | |
| template<typename CLASS_POINT> | |
| SIMD_FORCE_INLINE void | SEGMENT_COLLISION (const CLASS_POINT &vA1, const CLASS_POINT &vA2, const CLASS_POINT &vB1, const CLASS_POINT &vB2, CLASS_POINT &vPointA, CLASS_POINT &vPointB) |
| Find closest points on segments. | |
| template<typename T> | |
| SIMD_FORCE_INLINE bool | BOX_AXIS_INTERSECT (T pos, T dir, T bmin, T bmax, T &tfirst, T &tlast) |
| Line box intersection in one dimension. | |
| template<typename T> | |
| SIMD_FORCE_INLINE void | SORT_3_INDICES (const T *values, GUINT *order_indices) |
| Sorts 3 componets. | |
1.5.2