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