Blender
V3.3
|
Public Member Functions | |
SIMD_FORCE_INLINE bool | compute_intervals (const GREAL &D0, const GREAL &D1, const GREAL &D2, const GREAL &D0D1, const GREAL &D0D2, GREAL &scale_edge0, GREAL &scale_edge1, GUINT &edge_index0, GUINT &edge_index1) |
if returns false, the faces are paralele More... | |
SIMD_FORCE_INLINE GUINT | clip_triangle (const btVector4 &tri_plane, const btVector3 *tripoints, const btVector3 *srcpoints, btVector3 *clip_points) |
clip triangle More... | |
SIMD_FORCE_INLINE void | sort_isect (GREAL &isect0, GREAL &isect1, GUINT &e0, GUINT &e1, btVector3 &vec0, btVector3 &vec1) |
SIMD_FORCE_INLINE GUINT | cross_line_intersection_test () |
Test verifying interval intersection with the direction between planes. More... | |
SIMD_FORCE_INLINE bool | triangle_collision (const btVector3 &u0, const btVector3 &u1, const btVector3 &u2, GREAL margin_u, const btVector3 &v0, const btVector3 &v1, const btVector3 &v2, GREAL margin_v, GIM_TRIANGLE_CONTACT_DATA &contacts) |
collides by two sides More... | |
Definition at line 39 of file gim_tri_collision.cpp.
|
inline |
clip triangle
Definition at line 108 of file gim_tri_collision.cpp.
References EDGE_PLANE, GUINT, PLANE_CLIP_POLYGON3D(), PLANE_CLIP_TRIANGLE3D(), temp_points, and temp_points1.
Referenced by triangle_collision().
|
inline |
if returns false, the faces are paralele
Definition at line 62 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test().
|
inline |
Test verifying interval intersection with the direction between planes.
Definition at line 197 of file gim_tri_collision.cpp.
References btVector3, closest_point_u, closest_point_v, compute_intervals(), distances, du, du0du1, du0du2, dv, dv0dv1, dv0dv2, edge_edge_dir, GREAL, GUINT, MIN_EDGE_EDGE_DIS, SEGMENT_COLLISION(), sort_isect(), tu_plane, tu_vertices, tv_plane, tv_vertices, and VEC_LENGTH.
|
inline |
Definition at line 171 of file gim_tri_collision.cpp.
References btVector3, and GIM_SWAP_NUMBERS.
Referenced by cross_line_intersection_test().
|
inline |
collides by two sides
Definition at line 311 of file gim_tri_collision.cpp.
References clip_triangle(), closest_point_v, contact_points, DISTANCE_PLANE_POINT, distances, du, du0du1, du0du2, dv, dv0dv1, dv0dv2, edge_edge_dir, GIM_MAX3, GIM_MIN3, GUINT, GIM_TRIANGLE_CONTACT_DATA::m_penetration_depth, GIM_TRIANGLE_CONTACT_DATA::m_point_count, GIM_TRIANGLE_CONTACT_DATA::m_points, GIM_TRIANGLE_CONTACT_DATA::m_separating_normal, margin, GIM_TRIANGLE_CONTACT_DATA::merge_points(), TRIANGLE_PLANE, tu_plane, tu_vertices, tv_plane, tv_vertices, u1, u2, v1, v2, VEC_COPY, VEC_SCALE_4, and VEC_SWAP.
Referenced by GIM_TRIANGLE::collide_triangle_hard_test().
btVector3 GIM_TRIANGLE_CALCULATION_CACHE::closest_point_u |
Definition at line 47 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test().
btVector3 GIM_TRIANGLE_CALCULATION_CACHE::closest_point_v |
Definition at line 48 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
btVector3 GIM_TRIANGLE_CALCULATION_CACHE::contact_points[MAX_TRI_CLIPPING] |
Definition at line 59 of file gim_tri_collision.cpp.
Referenced by triangle_collision().
btVector3 GIM_TRIANGLE_CALCULATION_CACHE::distances |
Definition at line 50 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
GREAL GIM_TRIANGLE_CALCULATION_CACHE::du[4] |
Definition at line 51 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
GREAL GIM_TRIANGLE_CALCULATION_CACHE::du0du1 |
Definition at line 52 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
GREAL GIM_TRIANGLE_CALCULATION_CACHE::du0du2 |
Definition at line 53 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
GREAL GIM_TRIANGLE_CALCULATION_CACHE::dv[4] |
Definition at line 54 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
GREAL GIM_TRIANGLE_CALCULATION_CACHE::dv0dv1 |
Definition at line 55 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
GREAL GIM_TRIANGLE_CALCULATION_CACHE::dv0dv2 |
Definition at line 56 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
btVector3 GIM_TRIANGLE_CALCULATION_CACHE::edge_edge_dir |
Definition at line 49 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
GREAL GIM_TRIANGLE_CALCULATION_CACHE::margin |
Definition at line 42 of file gim_tri_collision.cpp.
Referenced by triangle_collision().
btVector3 GIM_TRIANGLE_CALCULATION_CACHE::temp_points[MAX_TRI_CLIPPING] |
Definition at line 57 of file gim_tri_collision.cpp.
Referenced by clip_triangle().
btVector3 GIM_TRIANGLE_CALCULATION_CACHE::temp_points1[MAX_TRI_CLIPPING] |
Definition at line 58 of file gim_tri_collision.cpp.
Referenced by clip_triangle().
btVector4 GIM_TRIANGLE_CALCULATION_CACHE::tu_plane |
Definition at line 45 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
btVector3 GIM_TRIANGLE_CALCULATION_CACHE::tu_vertices[3] |
Definition at line 43 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
btVector4 GIM_TRIANGLE_CALCULATION_CACHE::tv_plane |
Definition at line 46 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
btVector3 GIM_TRIANGLE_CALCULATION_CACHE::tv_vertices[3] |
Definition at line 44 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().