16 #if defined (_WIN32) || defined (__i386__) 17 #define BT_USE_SSE_IN_API 31 unsigned char* pointsAddress = (
unsigned char*)points;
33 for (
int i=0;i<numPoints;i++)
37 pointsAddress += stride;
55 if (recalculateLocalAabb)
81 for (
int i=0;i<numVectors;i++)
87 for (
int j=0;j<numVectors;j++)
94 supportVerticesOut[j][3] = newDot;
184 #ifdef BT_USE_DOUBLE_PRECISION 199 for (
int i=0;i<numElem;i++,memPtr++)
206 return "btConvexHullShapeData";
216 for(
int i=0;i<numVerts;i++)
237 minProj = witnesPtMin.
dot(dir);
238 maxProj = witnesPtMax.
dot(dir);
244 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
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[]
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
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)
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