75#ifdef TEST_INTERNAL_OBJECTS
90 for(
int i=0;i<
m_faces.size();i++)
110 for(
int i=0;i<
m_faces.size();i++)
112 int numVertices =
m_faces[i].m_indices.size();
113 int NbTris = numVertices;
114 for(
int j=0;j<NbTris;j++)
116 int k = (j+1)%numVertices;
154#ifdef USE_CONNECTED_FACES
155 for(
int i=0;i<
m_faces.size();i++)
157 int numVertices =
m_faces[i].m_indices.size();
158 m_faces[i].m_connectedFaces.resize(numVertices);
160 for(
int j=0;j<numVertices;j++)
162 int k = (j+1)%numVertices;
170 m_faces[i].m_connectedFaces[j] = connectedFace;
175 for(
int i=0;i<
m_faces.size();i++)
177 int numVertices =
m_faces[i].m_indices.size();
178 int NbTris = numVertices-2;
181 for(
int j=1;j<=NbTris;j++)
183 int k = (j+1)%numVertices;
197#ifdef TEST_INTERNAL_OBJECTS
201 for(
int i=0;i<
m_faces.size();i++)
219 if(pt.
x()<MinX) MinX = pt.
x();
220 if(pt.
x()>MaxX) MaxX = pt.
x();
221 if(pt.
y()<MinY) MinY = pt.
y();
222 if(pt.
y()>MaxY) MaxY = pt.
y();
223 if(pt.
z()<MinZ) MinZ = pt.
z();
224 if(pt.
z()>MaxZ) MaxZ = pt.
z();
234 const btScalar Step = (
mE[LargestExtent]*0.5f - r)/1024.0f;
237 bool FoundBox =
false;
238 for(
int j=0;j<1024;j++)
256 const int e0 = (1<<LargestExtent) & 3;
257 const int e1 = (1<<e0) & 3;
259 for(
int j=0;j<1024;j++)
283 for(
int i=0;i<numVerts;i++)
301 btSwap(witnesPtMin,witnesPtMax);
bool IsAlmostZero(const btVector3 &v)
btScalar length(const btQuaternion &q)
Return the length of a quaternion.
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btScalar btFabs(btScalar x)
int size() const
return the number of elements in the array
void push_back(const T &_Val)
void project(const btTransform &trans, const btVector3 &dir, btScalar &minProj, btScalar &maxProj, btVector3 &witnesPtMin, btVector3 &witnesPtMax) const
bool testContainment() const
btAlignedObjectArray< btVector3 > m_vertices
virtual ~btConvexPolyhedron()
btAlignedObjectArray< btFace > m_faces
btConvexPolyhedron()
This file was written by Erwin Coumans Separating axis rest based on work from Pierre Terdiman,...
btAlignedObjectArray< btVector3 > m_uniqueEdges
The btHashMap template class implements a generic and lightweight hashmap.
void insert(const Key &key, const Value &value)
const Value * find(const Key &key) const
btVector3 can be used to represent 3D points and vectors.
const btScalar & z() const
Return the z value.
btScalar dot(const btVector3 &v) const
Return the dot product.
void setValue(const btScalar &_x, const btScalar &_y, const btScalar &_z)
const btScalar & x() const
Return the x value.
int maxAxis() const
Return the axis with the largest value Note return values are 0,1,2 for x, y, or z.
btVector3 & normalize()
Normalize this vector x^2 + y^2 + z^2 = 1.
const btScalar & y() const
Return the y value.
btInternalVertexPair(short int v0, short int v1)
bool equals(const btInternalVertexPair &other) const