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