Blender V2.61 - r43446
Public Member Functions | Public Attributes

GIM_TRIANGLE_CALCULATION_CACHE Class Reference

List of all members.

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]

Detailed Description

Definition at line 41 of file gim_tri_collision.cpp.


Member Function Documentation

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.

Precondition:
tv_plane and tu_plane must be set
Postcondition:
distances[2] is set with the distance closest_point_u, closest_point_v, edge_edge_dir are set too
Returns:
  • 0: faces are paralele
  • 1: face U casts face V
  • 2: face V casts face U
  • 3: nearest edges

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]

Member Data Documentation

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().

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().

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().

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().

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().

Definition at line 46 of file gim_tri_collision.cpp.

Referenced by cross_line_intersection_test(), and triangle_collision().


The documentation for this class was generated from the following file: