1 #ifndef GIM_CONTACT_H_INCLUDED 2 #define GIM_CONTACT_H_INCLUDED 43 #ifndef NORMAL_CONTACT_AVERAGE 44 #define NORMAL_CONTACT_AVERAGE 1 47 #ifndef CONTACT_DIFF_EPSILON 48 #define CONTACT_DIFF_EPSILON 0.00001f 51 #ifndef BT_CONTACT_H_STRUCTS_INCLUDED 73 m_point(contact.m_point),
74 m_normal(contact.m_normal),
75 m_depth(contact.m_depth),
76 m_feature1(contact.m_feature1),
77 m_feature2(contact.m_feature2)
100 (
GINT)(m_point[0]*1000.0f+1.0f),
101 (
GINT)(m_point[1]*1333.0f),
102 (
GINT)(m_point[2]*2133.0f+3.0f)};
107 _hash += (*_uitmp)<<4;
109 _hash += (*_uitmp)<<8;
116 for(
GUINT i=0;i<normal_count;i++)
118 vec_sum += normals[i];
126 m_normal = vec_sum*vec_sum_len;
168 void merge_contacts(
const gim_contact_array & contacts,
bool normal_contact_average =
true);
172 #endif // GIM_CONTACT_H_INCLUDED
#define GIM_INV_SQRT(va, isva)
#define SIMD_FORCE_INLINE
Very simple array container with fast access and simd memory.
btVector3 can be used to represent 3D points and vectors.
btScalar length2() const
Return the length of the vector squared.