| Bullet Collision Detection & Physics Library
    | 
Class for colliding triangles. More...
#include <gim_tri_collision.h>

| Public Member Functions | |
| GIM_TRIANGLE () | |
| GIM_AABB | get_box () const | 
| void | get_normal (btVector3 &normal) const | 
| void | get_plane (btVector4 &plane) const | 
| void | apply_transform (const btTransform &trans) | 
| void | get_edge_plane (GUINT edge_index, const btVector3 &triangle_normal, btVector4 &plane) const | 
| void | get_triangle_transform (btTransform &triangle_transform) const | 
| Gets the relative transformation of this triangle.  More... | |
| bool | collide_triangle_hard_test (const GIM_TRIANGLE &other, GIM_TRIANGLE_CONTACT_DATA &contact_data) const | 
| Test triangles by finding separating axis.  More... | |
| bool | collide_triangle (const GIM_TRIANGLE &other, GIM_TRIANGLE_CONTACT_DATA &contact_data) const | 
| Test boxes before doing hard test.  More... | |
| bool | get_uv_parameters (const btVector3 &point, const btVector3 &tri_plane, GREAL &u, GREAL &v) const | 
| bool | is_point_inside (const btVector3 &point, const btVector3 &tri_normal) const | 
| is point in triangle beam?  More... | |
| bool | ray_collision (const btVector3 &vPoint, const btVector3 &vDir, btVector3 &pout, btVector3 &triangle_normal, GREAL &tparam, GREAL tmax=G_REAL_INFINITY) | 
| Bidireccional ray collision.  More... | |
| bool | ray_collision_front_side (const btVector3 &vPoint, const btVector3 &vDir, btVector3 &pout, btVector3 &triangle_normal, GREAL &tparam, GREAL tmax=G_REAL_INFINITY) | 
| one direccion ray collision  More... | |
| Public Attributes | |
| btScalar | m_margin | 
| btVector3 | m_vertices [3] | 
Class for colliding triangles.
Definition at line 125 of file gim_tri_collision.h.
| 
 | inline | 
Definition at line 131 of file gim_tri_collision.h.
| 
 | inline | 
Definition at line 150 of file gim_tri_collision.h.
| 
 | inline | 
Test boxes before doing hard test.
| other | Triangle for collide | 
| contact_data | Structure for holding contact points, normal and penetration depth; The normal is pointing toward this triangle from the other triangle \ | 
Definition at line 206 of file gim_tri_collision.h.
| bool GIM_TRIANGLE::collide_triangle_hard_test | ( | const GIM_TRIANGLE & | other, | 
| GIM_TRIANGLE_CONTACT_DATA & | contact_data | ||
| ) | const | 
Test triangles by finding separating axis.
| other | Triangle for collide | 
| contact_data | Structure for holding contact points, normal and penetration depth; The normal is pointing toward this triangle from the other triangle | 
Definition at line 626 of file gim_tri_collision.cpp.
| 
 | inline | 
Definition at line 135 of file gim_tri_collision.h.
| 
 | inline | 
Definition at line 157 of file gim_tri_collision.h.
| 
 | inline | 
Definition at line 140 of file gim_tri_collision.h.
| 
 | inline | 
Definition at line 145 of file gim_tri_collision.h.
| 
 | inline | 
Gets the relative transformation of this triangle.
The transformation is oriented to the triangle normal , and aligned to the 1st edge of this triangle. The position corresponds to vertice 0:
Definition at line 171 of file gim_tri_collision.h.
| 
 | inline | 
Solve the System for u,v parameters:
u*axe1[i1] + v*axe2[i1] = vecproj[i1] u*axe1[i2] + v*axe2[i2] = vecproj[i2]
sustitute: v = (vecproj[i2] - u*axe1[i2])/axe2[i2]
then the first equation in terms of 'u':
–> u*axe1[i1] + ((vecproj[i2] - u*axe1[i2])/axe2[i2])*axe2[i1] = vecproj[i1]
–> u*axe1[i1] + vecproj[i2]*axe2[i1]/axe2[i2] - u*axe1[i2]*axe2[i1]/axe2[i2] = vecproj[i1]
–> u*(axe1[i1] - axe1[i2]*axe2[i1]/axe2[i2]) = vecproj[i1] - vecproj[i2]*axe2[i1]/axe2[i2]
–> u*((axe1[i1]*axe2[i2] - axe1[i2]*axe2[i1])/axe2[i2]) = (vecproj[i1]*axe2[i2] - vecproj[i2]*axe2[i1])/axe2[i2]
–> u*(axe1[i1]*axe2[i2] - axe1[i2]*axe2[i1]) = vecproj[i1]*axe2[i2] - vecproj[i2]*axe2[i1]
–> u = (vecproj[i1]*axe2[i2] - vecproj[i2]*axe2[i1]) /(axe1[i1]*axe2[i2] - axe1[i2]*axe2[i1])
if 0.0<= u+v <=1.0 then they are inside of triangle
\return false if the point is outside of triangle.This function doesn't take the margin
Definition at line 247 of file gim_tri_collision.h.
| 
 | inline | 
is point in triangle beam?
Test if point is in triangle, with m_margin tolerance
Definition at line 296 of file gim_tri_collision.h.
| 
 | inline | 
Bidireccional ray collision.
Definition at line 316 of file gim_tri_collision.h.
| 
 | inline | 
one direccion ray collision
Definition at line 349 of file gim_tri_collision.h.
| btScalar GIM_TRIANGLE::m_margin | 
Definition at line 128 of file gim_tri_collision.h.
| btVector3 GIM_TRIANGLE::m_vertices[3] | 
Definition at line 129 of file gim_tri_collision.h.
 1.8.11
 1.8.11