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 btSqrt(btScalar y)
#define SIMD_FORCE_INLINE
btVector3 can be used to represent 3D points and vectors. 
btScalar length2() const 
Return the length of the vector squared. 
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...