1 #ifndef GIM_CONTACT_H_INCLUDED 2 #define GIM_CONTACT_H_INCLUDED 42 #ifndef NORMAL_CONTACT_AVERAGE 43 #define NORMAL_CONTACT_AVERAGE 1 46 #ifndef CONTACT_DIFF_EPSILON 47 #define CONTACT_DIFF_EPSILON 0.00001f 50 #ifndef BT_CONTACT_H_STRUCTS_INCLUDED 72 m_normal(contact.m_normal),
73 m_depth(contact.m_depth),
74 m_feature1(contact.m_feature1),
75 m_feature2(contact.m_feature2)
97 (
GINT)(m_point[0] * 1000.0f + 1.0f),
98 (
GINT)(m_point[1] * 1333.0f),
99 (
GINT)(m_point[2] * 2133.0f + 3.0f)};
104 _hash += (*_uitmp) << 4;
106 _hash += (*_uitmp) << 8;
113 for (
GUINT i = 0; i < normal_count; i++)
115 vec_sum += normals[i];
123 m_normal = vec_sum * vec_sum_len;
164 void merge_contacts(
const gim_contact_array &contacts,
bool normal_contact_average =
true);
168 #endif // GIM_CONTACT_H_INCLUDED
#define GIM_INV_SQRT(va, isva)
btScalar length2() const
Return the length of the vector squared.
#define SIMD_FORCE_INLINE
Very simple array container with fast access and simd memory.
btVector3 can be used to represent 3D points and vectors.