48                 m_supportVecLocal(supportVecLocal)
    63                                 m_supportVertexLocal = triangle[i];
    70                 return m_supportVertexLocal;
   106                 for (
int i=0;i<numVectors;i++)
   115         for (
int j=0;j<numVectors;j++)
   221       CenterCallback() : first(
true), ref(0, 0, 0), 
sum(0, 0, 0), volume(0)
   225       virtual void internalProcessTriangleIndex(
btVector3* triangle, 
int partId, 
int triangleIndex)
   227          (void) triangleIndex;
   236             btScalar vol = 
btFabs((triangle[0] - ref).triple(triangle[1] - ref, triangle[2] - ref));
   237             sum += (
btScalar(0.25) * vol) * ((triangle[0] + triangle[1] + triangle[2] + ref));
   244          return (volume > 0) ? sum / volume : ref;
   261       InertiaCallback(
btVector3& center) : 
sum(0, 0, 0, 0, 0, 0, 0, 0, 0), center(center)
   265       virtual void internalProcessTriangleIndex(
btVector3* triangle, 
int partId, 
int triangleIndex)
   267          (void) triangleIndex;
   274          for (
int j = 0; j < 3; j++)
   276             for (
int k = 0; k <= j; k++)
   278                i[j][k] = i[k][j] = volNeg * (
btScalar(0.1) * (a[j] * a[k] + b[j] * b[k] + c[j] * c[k])
   279                   + 
btScalar(0.05) * (a[j] * b[k] + a[k] * b[j] + a[j] * c[k] + a[k] * c[j] + b[j] * c[k] + b[k] * c[j]));
   300    CenterCallback centerCallback;
   303    btVector3 center = centerCallback.getCenter();
   305    volume = centerCallback.getVolume();
   307    InertiaCallback inertiaCallback(center);
   312    inertia.
setValue(i[0][0], i[1][1], i[2][2]);
 
static T sum(const btAlignedObjectArray< T > &items)
virtual bool isInside(const btVector3 &pt, btScalar tolerance) const
void setValue(const btScalar &_x, const btScalar &_y, const btScalar &_z)
It's not nice to have all this virtual function overhead, so perhaps we can also gather the points on...
btScalar length2() const
Return the length of the vector squared. 
virtual int getNumPlanes() const
virtual void InternalProcessAllTriangles(btInternalTriangleIndexCallback *callback, const btVector3 &aabbMin, const btVector3 &aabbMax) const
btScalar btSqrt(btScalar y)
LocalSupportVertexCallback(const btVector3 &supportVecLocal)
void setScaling(const btVector3 &scaling)
btVector3 & normalize()
Normalize this vector x^2 + y^2 + z^2 = 1. 
btVector3 m_supportVertexLocal
virtual void setLocalScaling(const btVector3 &scaling)
btVector3 m_supportVecLocal
virtual void getVertex(int i, btVector3 &vtx) const
void diagonalize(btMatrix3x3 &rot, btScalar threshold, int maxSteps)
diagonalizes this matrix by the Jacobi method. 
virtual btVector3 localGetSupportingVertex(const btVector3 &vec) const
virtual void getPlane(btVector3 &planeNormal, btVector3 &planeSupport, int i) const
virtual btScalar getMargin() const
btScalar dot(const btVector3 &v) const
Return the dot product. 
class btStridingMeshInterface * m_stridingMesh
virtual int getNumVertices() const
virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3 *vectors, btVector3 *supportVerticesOut, int numVectors) const
virtual void internalProcessTriangleIndex(btVector3 *triangle, int partId, int triangleIndex)
btVector3 can be used to represent 3D points and vectors. 
The btPolyhedralConvexAabbCachingShape adds aabb caching to the btPolyhedralConvexShape. 
The btStridingMeshInterface is the interface class for high performance generic access to triangle me...
const btVector3 & getScaling() const
virtual void getEdge(int i, btVector3 &pa, btVector3 &pb) const
The btMatrix3x3 class implements a 3x3 rotation matrix, to perform linear algebra in combination with...
void calculatePrincipalAxisTransform(btTransform &principal, btVector3 &inertia, btScalar &volume) const
computes the exact moment of inertia and the transform from the coordinate system defined by the prin...
btScalar dot(const btQuaternion &q1, const btQuaternion &q2)
Calculate the dot product between two quaternions. 
virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3 &vec) const
virtual int getNumEdges() const
virtual const btVector3 & getLocalScaling() const
btScalar triple(const btVector3 &v1, const btVector3 &v2) const
btVector3 GetSupportVertexLocal()
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
btConvexTriangleMeshShape(btStridingMeshInterface *meshInterface, bool calcAabb=true)
btScalar btFabs(btScalar x)