Blender V2.61 - r43446
|
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 | |
SIMD_FORCE_INLINE GUINT | clip_triangle (const btVector4 &tri_plane, const btVector3 *tripoints, const btVector3 *srcpoints, btVector3 *clip_points) |
clip triangle | |
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. | |
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 | |
Public Attributes | |
GREAL | margin |
btVector3 | tu_vertices [3] |
btVector3 | tv_vertices [3] |
btVector4 | tu_plane |
btVector4 | tv_plane |
btVector3 | closest_point_u |
btVector3 | closest_point_v |
btVector3 | edge_edge_dir |
btVector3 | distances |
GREAL | du [4] |
GREAL | du0du1 |
GREAL | du0du2 |
GREAL | dv [4] |
GREAL | dv0dv1 |
GREAL | dv0dv2 |
btVector3 | temp_points [MAX_TRI_CLIPPING] |
btVector3 | temp_points1 [MAX_TRI_CLIPPING] |
btVector3 | contact_points [MAX_TRI_CLIPPING] |
Definition at line 41 of file gim_tri_collision.cpp.
SIMD_FORCE_INLINE GUINT GIM_TRIANGLE_CALCULATION_CACHE::clip_triangle | ( | const btVector4 & | tri_plane, |
const btVector3 * | tripoints, | ||
const btVector3 * | srcpoints, | ||
btVector3 * | clip_points | ||
) | [inline] |
clip triangle
Definition at line 110 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().
SIMD_FORCE_INLINE bool GIM_TRIANGLE_CALCULATION_CACHE::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 | ||
) | [inline] |
if returns false, the faces are paralele
Definition at line 66 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test().
SIMD_FORCE_INLINE GUINT GIM_TRIANGLE_CALCULATION_CACHE::cross_line_intersection_test | ( | ) | [inline] |
Test verifying interval intersection with the direction between planes.
Definition at line 200 of file gim_tri_collision.cpp.
References 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.
SIMD_FORCE_INLINE void GIM_TRIANGLE_CALCULATION_CACHE::sort_isect | ( | GREAL & | isect0, |
GREAL & | isect1, | ||
GUINT & | e0, | ||
GUINT & | e1, | ||
btVector3 & | vec0, | ||
btVector3 & | vec1 | ||
) | [inline] |
Definition at line 174 of file gim_tri_collision.cpp.
References GIM_SWAP_NUMBERS.
Referenced by cross_line_intersection_test().
SIMD_FORCE_INLINE bool GIM_TRIANGLE_CALCULATION_CACHE::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 | ||
) | [inline] |
collides by two sides
Definition at line 317 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, VEC_COPY, VEC_SCALE_4, and VEC_SWAP.
Referenced by GIM_TRIANGLE::collide_triangle_hard_test().
Definition at line 49 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test().
Definition at line 50 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 61 of file gim_tri_collision.cpp.
Referenced by triangle_collision().
Definition at line 52 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 53 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
Definition at line 54 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
Definition at line 55 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 56 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
Definition at line 57 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
Definition at line 58 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
Definition at line 51 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
Definition at line 44 of file gim_tri_collision.cpp.
Referenced by triangle_collision().
btVector3 GIM_TRIANGLE_CALCULATION_CACHE::temp_points[MAX_TRI_CLIPPING] |
Definition at line 59 of file gim_tri_collision.cpp.
Referenced by clip_triangle().
btVector3 GIM_TRIANGLE_CALCULATION_CACHE::temp_points1[MAX_TRI_CLIPPING] |
Definition at line 60 of file gim_tri_collision.cpp.
Referenced by clip_triangle().
Definition at line 47 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 45 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().
Definition at line 48 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 46 of file gim_tri_collision.cpp.
Referenced by cross_line_intersection_test(), and triangle_collision().