16 #if defined (_WIN32) || defined (__i386__)    17 #define BT_USE_SSE_IN_API    33         unsigned char* pointsAddress = (
unsigned char*)points;
    35         for (
int i=0;i<numPoints;i++)
    39                 pointsAddress += stride;
    57         if (recalculateLocalAabb)
    83                 for (
int i=0;i<numVectors;i++)
    89     for (
int j=0;j<numVectors;j++)
    96             supportVerticesOut[j][3] = newDot;        
   132         for (
int i=0;i<numVerts;i++)
   193 #ifdef BT_USE_DOUBLE_PRECISION   208                 for (
int i=0;i<numElem;i++,memPtr++)
   215         return "btConvexHullShapeData";
   225         for(
int i=0;i<numVerts;i++)
   246         minProj = witnesPtMin.
dot(dir);
   247         maxProj = witnesPtMax.
dot(dir);
   253                 btSwap(witnesPtMin,witnesPtMax);
 virtual bool isInside(const btVector3 &pt, btScalar tolerance) const
virtual int getNumEdges() const
void push_back(const T &_Val)
void setValue(const btScalar &_x, const btScalar &_y, const btScalar &_z)
virtual void getPlane(btVector3 &planeNormal, btVector3 &planeSupport, int i) const
virtual void * getUniquePointer(void *oldPtr)=0
btConvexInternalShapeData m_convexInternalShapeData
virtual void project(const btTransform &trans, const btVector3 &dir, btScalar &minProj, btScalar &maxProj, btVector3 &witnesPtMin, btVector3 &witnesPtMax) const
btVector3DoubleData * m_unscaledPointsDoublePtr
virtual void getEdge(int i, btVector3 &pa, btVector3 &pb) const
btAlignedObjectArray< btVector3 > m_unscaledPoints
Convex hull implementation based on Preparata and Hong See http://code.google.com/p/bullet/issues/det...
btVector3 & normalize()
Normalize this vector x^2 + y^2 + z^2 = 1. 
btConvexHullShape(const btScalar *points=0, int numPoints=0, int stride=sizeof(btVector3))
this constructor optionally takes in a pointer to points. 
#define btVector3DataName
long maxDot(const btVector3 *array, long array_count, btScalar &dotOut) const
returns index of maximum dot product between this and vectors in array[] 
void optimizeConvexHull()
virtual const char * serialize(void *dataBuffer, btSerializer *serializer) const
fills the dataBuffer and returns the struct name (and 0 on failure) 
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 ...
virtual int getNumVertices() const
virtual btScalar getMargin() const
btScalar dot(const btVector3 &v) const
Return the dot product. 
btVector3 getScaledPoint(int i) const
btVector3FloatData * m_unscaledPointsFloatPtr
virtual int getNumPlanes() const
btVector3 can be used to represent 3D points and vectors. 
int size() const
return the number of elements in the array 
btAlignedObjectArray< btVector3 > vertices
The btPolyhedralConvexAabbCachingShape adds aabb caching to the btPolyhedralConvexShape. 
virtual void finalizeChunk(btChunk *chunk, const char *structType, int chunkCode, void *oldPtr)=0
virtual void setLocalScaling(const btVector3 &scaling)
in case we receive negative scaling 
virtual btVector3 localGetSupportingVertex(const btVector3 &vec) const
void resize(int newsize, const T &fillData=T())
virtual const char * serialize(void *dataBuffer, btSerializer *serializer) const
fills the dataBuffer and returns the struct name (and 0 on failure) 
void addPoint(const btVector3 &point, bool recalculateLocalAabb=true)
btScalar compute(const void *coords, bool doubleCoords, int stride, int count, btScalar shrink, btScalar shrinkClamp)
virtual void getVertex(int i, btVector3 &vtx) const
virtual btChunk * allocate(size_t size, int numElements)=0
virtual void batchedUnitVectorGetSupportingVertexWithoutMargin(const btVector3 *vectors, btVector3 *supportVerticesOut, int numVectors) const
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
virtual btVector3 localGetSupportingVertexWithoutMargin(const btVector3 &vec) const