made shape construction virtual, to allow destruction of memory of btCollisionShape

This commit is contained in:
erwin.coumans
2008-10-04 01:11:40 +00:00
parent 23b2767100
commit b281057337
2 changed files with 471 additions and 320 deletions

View File

@@ -50,6 +50,8 @@ public:
};
class btRigidConstraintColladaInfo
{
public:
@@ -77,11 +79,15 @@ public:
class ColladaConverter
{
char m_cleaned_filename[513];
protected:
btDynamicsWorld* m_dynamicsWorld;
btAlignedObjectArray<class btCollisionShape*> m_allocatedCollisionShapes;
btHashMap<btHashKeyPtr<btRigidBodyColladaInfo*>,btRigidBodyColladaInfo*> m_rbUserInfoHashMap;
btHashMap<btHashKeyPtr<btRigidConstraintColladaInfo*>,btRigidConstraintColladaInfo*> m_constraintUserInfoHashMap;
@@ -213,6 +219,22 @@ public:
{
};
virtual btCollisionShape* createPlaneShape(const btVector3& planeNormal,btScalar planeConstant);
virtual btCollisionShape* createBoxShape(const btVector3& halfExtents);
virtual btCollisionShape* createSphereShape(btScalar radius);
virtual btCollisionShape* createCylinderShapeY(btScalar radius,btScalar height);
virtual class btTriangleMesh* createTriangleMeshContainer();
virtual btCollisionShape* createBvhTriangleMeshShape(btTriangleMesh* trimesh);
virtual btCollisionShape* createConvexTriangleMeshShape(btTriangleMesh* trimesh);
virtual class btConvexHullShape* createConvexHullShape();
virtual class btCompoundShape* createCompoundShape();
int getNumCollisionShapes() const;
btCollisionShape* getCollisionShape(int shapeIndex);
void deleteAllocatedCollisionShapes();
void deleteShape(btCollisionShape* shape);
char* getLastFileName();
char* fixFileName(const char* lpCmdLine);