1 #ifndef BT_CONTACT_H_INCLUDED     2 #define BT_CONTACT_H_INCLUDED    36 #define NORMAL_CONTACT_AVERAGE 1    38 #define CONTACT_DIFF_EPSILON 0.00001f    57                                 m_point(contact.m_point),
    58                                 m_normal(contact.m_normal),
    59                                 m_depth(contact.m_depth),
    60                                 m_feature1(contact.m_feature1),
    61                                 m_feature2(contact.m_feature2)
    66                                 btScalar depth, 
int feature1, 
int feature2):
    79                 (int)(m_point[0]*1000.0f+1.0f),
    80                 (int)(m_point[1]*1333.0f),
    81                 (int)(m_point[2]*2133.0f+3.0f)};
    83                 unsigned int *_uitmp = (
unsigned int *)(&_coords[0]);
    86                 _hash += (*_uitmp)<<4;
    88                 _hash += (*_uitmp)<<8;
    95                 for(
int i=0;i<normal_count;i++)
    97                         vec_sum += normals[i];
   105                 m_normal = vec_sum/
btSqrt(vec_sum_len);
   121                 btScalar depth, 
int feature1, 
int feature2)
   123                 push_back( 
GIM_CONTACT(point,normal,depth,feature1,feature2) );
   128                 int feature1,
int feature2)
   139         void merge_contacts(
const btContactArray & contacts, 
bool normal_contact_average = 
true);
   145 #endif // GIM_CONTACT_H_INCLUDED 
The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods It...
btScalar length2() const
Return the length of the vector squared. 
btScalar btSqrt(btScalar y)
#define SIMD_FORCE_INLINE
btVector3 can be used to represent 3D points and vectors. 
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...