btTriangleMeshShape::btTriangleMeshShape(btStridingMeshInterface* meshInterface) : btConcaveShape (), m_meshInterface(meshInterface) { m_shapeType = TRIANGLE_MESH_SHAPE_PROXYTYPE; if(meshInterface->hasPremadeAabb()) { meshInterface->getPremadeAabb(&m_localAabbMin, &m_localAabbMax); } else { recalcLocalAabb(); } }
btConvexHullShape ::btConvexHullShape (const btScalar* points,int numPoints,int stride) : btPolyhedralConvexShape () { m_shapeType = CONVEX_HULL_SHAPE_PROXYTYPE; m_unscaledPoints.resize(numPoints); unsigned char* pointsBaseAddress = (unsigned char*)points; for (int i=0;i<numPoints;i++) { btVector3* point = (btVector3*)(pointsBaseAddress + i*stride); m_unscaledPoints[i] = point[0]; } recalcLocalAabb(); }
btConvexHullShape ::btConvexHullShape (const btScalar* points,int numPoints,int stride) : btPolyhedralConvexAabbCachingShape () { m_shapeType = CONVEX_HULL_SHAPE_PROXYTYPE; m_unscaledPoints.resize(numPoints); unsigned char* pointsAddress = (unsigned char*)points; for (int i=0;i<numPoints;i++) { btScalar* point = (btScalar*)pointsAddress; m_unscaledPoints[i] = btVector3(point[0], point[1], point[2]); pointsAddress += stride; } recalcLocalAabb(); }
void btConvexHullShape::updatePoints(const btScalar* points, int numPoints, int stride) { const btScalar* ptr = points; unsigned char* address = (unsigned char*)points; // In case the number of points differ. m_unscaledPoints.resize(numPoints); for (int index = 0; index < numPoints; ++index) { btScalar* point = (btScalar*)address; m_unscaledPoints[index] = btVector3(point[0], point[1], point[2]); address += stride; } recalcLocalAabb(); }
btMultiSphereShape::btMultiSphereShape (const btVector3* positions,const btScalar* radi,int numSpheres) :btConvexInternalAabbCachingShape () { m_shapeType = MULTI_SPHERE_SHAPE_PROXYTYPE; //btScalar startMargin = btScalar(BT_LARGE_FLOAT); m_localPositionArray.resize(numSpheres); m_radiArray.resize(numSpheres); for (int i=0;i<numSpheres;i++) { m_localPositionArray[i] = positions[i]; m_radiArray[i] = radi[i]; } recalcLocalAabb(); }
btTriangleMeshShape::btTriangleMeshShape(btStridingMeshInterface* meshInterface) : m_meshInterface(meshInterface) { recalcLocalAabb(); }
void btTriangleMeshShape::setLocalScaling(const btVector3& scaling) { m_meshInterface->setScaling(scaling); recalcLocalAabb(); }
void btPolyhedralConvexAabbCachingShape::setLocalScaling(const btVector3& scaling) { btConvexInternalShape::setLocalScaling(scaling); recalcLocalAabb(); }
void btConvexHullShape::addPoint(const btVector3& point) { m_unscaledPoints.push_back(point); recalcLocalAabb(); }
void btConvexHullShape::setLocalScaling(const btVector3& scaling) { m_localScaling = scaling; recalcLocalAabb(); }
void btConvexTriangleMeshShape::setLocalScaling(const btVector3& scaling) { m_stridingMesh->setScaling(scaling); recalcLocalAabb(); }
void btBU_Simplex1to4::addVertex(const btVector3& pt) { m_vertices[m_numVertices++] = pt; recalcLocalAabb(); }
btCylinderShapeZ::btCylinderShapeZ (const btVector3& halfExtents) :btCylinderShape(halfExtents) { m_upAxis = 2; recalcLocalAabb(); }
void btBvhTriangleMeshShape::refitTree(const btVector3& aabbMin,const btVector3& aabbMax) { m_bvh->refit( m_meshInterface, aabbMin,aabbMax ); recalcLocalAabb(); }
btCylinderShape::btCylinderShape (const btVector3& halfExtents) :btBoxShape(halfExtents), m_upAxis(1) { recalcLocalAabb(); }
void btConvexHullShape::addPoint(const btPoint3& point) { m_points.push_back(point); recalcLocalAabb(); }