16#ifndef _BT_TRIANGLE_INFO_MAP_H
17#define _BT_TRIANGLE_INFO_MAP_H
23#define TRI_INFO_V0V1_CONVEX 1
24#define TRI_INFO_V1V2_CONVEX 2
25#define TRI_INFO_V2V0_CONVEX 4
27#define TRI_INFO_V0V1_SWAP_NORMALB 8
28#define TRI_INFO_V1V2_SWAP_NORMALB 16
29#define TRI_INFO_V2V0_SWAP_NORMALB 32
135 int sz =
sizeof(
int);
150 int sz =
sizeof(
int);
183 int sz =
sizeof(
int);
200 return "btTriangleInfoMapData";
213 for (i = 0; i <
tmapData.m_hashTableSize; i++)
218 for (i = 0; i <
tmapData.m_nextSize; i++)
223 for (i = 0; i <
tmapData.m_numValues; i++)
232 for (i = 0; i <
tmapData.m_numKeys; i++)
const T & btMax(const T &a, const T &b)
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define SIMD_FORCE_INLINE
btHashMap< btHashInt, btTriangleInfo > btInternalTriangleInfoMap
int size() const
return the number of elements in the array
void resize(int newsize, const T &fillData=T())
The btHashMap template class implements a generic and lightweight hashmap.
btAlignedObjectArray< int > m_hashTable
btAlignedObjectArray< int > m_next
btAlignedObjectArray< Key > m_keyArray
btAlignedObjectArray< Value > m_valueArray
those fields have to be float and not btScalar for the serialization to work properly
float m_zeroAreaThreshold
float m_equalVertexThreshold
btTriangleInfoData * m_valueArrayPtr
float m_edgeDistanceThreshold
The btTriangleInfoMap stores edge angle information for some triangles. You can compute this informat...
void deSerialize(struct btTriangleInfoMapData &data)
fills the dataBuffer and returns the struct name (and 0 on failure)
btScalar m_maxEdgeAngleThreshold
used to determine edge contacts: if the closest distance between a contact point and an edge is small...
btScalar m_edgeDistanceThreshold
used to compute connectivity: if the distance between two vertices is smaller than m_equalVertexThres...
btScalar m_zeroAreaThreshold
btTriangleInfoMap()
used to determine if a triangle is degenerate (length squared of cross product of 2 triangle edges < ...
btScalar m_planarEpsilon
used to determine if an edge or contact normal is convex, using the dot product
btScalar m_equalVertexThreshold
used to determine if a triangle edge is planar with zero angle
virtual ~btTriangleInfoMap()
virtual const char * serialize(void *dataBuffer, btSerializer *serializer) const
fills the dataBuffer and returns the struct name (and 0 on failure)
virtual int calculateSerializeBufferSize() const
The btTriangleInfo structure stores information to adjust collision normals to avoid collisions again...