make the btAcosf/btAsinf fix multi-line to make it easier to put breakpoints.
fix a memory leak issue with ColladaConverter (keep track of the btTriangleMesh containers)
This commit is contained in:
@@ -2894,6 +2894,7 @@ btCollisionShape* ColladaConverter::createCylinderShapeY(btScalar radius,btScala
|
|||||||
btTriangleMesh* ColladaConverter::createTriangleMeshContainer()
|
btTriangleMesh* ColladaConverter::createTriangleMeshContainer()
|
||||||
{
|
{
|
||||||
btTriangleMesh* meshContainer = new btTriangleMesh(m_use32bitIndices,m_use4componentVertices);
|
btTriangleMesh* meshContainer = new btTriangleMesh(m_use32bitIndices,m_use4componentVertices);
|
||||||
|
m_allocatedTriangleMeshContainers.push_back(meshContainer);
|
||||||
return meshContainer;
|
return meshContainer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2948,6 +2949,12 @@ void ColladaConverter::deleteAllocatedCollisionShapes()
|
|||||||
delete m_allocatedCollisionShapes[i];
|
delete m_allocatedCollisionShapes[i];
|
||||||
}
|
}
|
||||||
m_allocatedCollisionShapes.clear();
|
m_allocatedCollisionShapes.clear();
|
||||||
|
|
||||||
|
for (int i=0;i<m_allocatedTriangleMeshContainers.size();i++)
|
||||||
|
{
|
||||||
|
delete m_allocatedTriangleMeshContainers[i];
|
||||||
|
}
|
||||||
|
m_allocatedTriangleMeshContainers.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ColladaConverter::deleteShape(btCollisionShape* shape)
|
void ColladaConverter::deleteShape(btCollisionShape* shape)
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ protected:
|
|||||||
btDynamicsWorld* m_dynamicsWorld;
|
btDynamicsWorld* m_dynamicsWorld;
|
||||||
|
|
||||||
btAlignedObjectArray<class btCollisionShape*> m_allocatedCollisionShapes;
|
btAlignedObjectArray<class btCollisionShape*> m_allocatedCollisionShapes;
|
||||||
|
btAlignedObjectArray<class btTriangleMesh*> m_allocatedTriangleMeshContainers;
|
||||||
|
|
||||||
btHashMap<btHashKeyPtr<btRigidBodyColladaInfo*>,btRigidBodyColladaInfo*> m_rbUserInfoHashMap;
|
btHashMap<btHashKeyPtr<btRigidBodyColladaInfo*>,btRigidBodyColladaInfo*> m_rbUserInfoHashMap;
|
||||||
btHashMap<btHashKeyPtr<btRigidConstraintColladaInfo*>,btRigidConstraintColladaInfo*> m_constraintUserInfoHashMap;
|
btHashMap<btHashKeyPtr<btRigidConstraintColladaInfo*>,btRigidConstraintColladaInfo*> m_constraintUserInfoHashMap;
|
||||||
|
|||||||
@@ -250,11 +250,17 @@ SIMD_FORCE_INLINE btScalar btSin(btScalar x) { return sinf(x); }
|
|||||||
SIMD_FORCE_INLINE btScalar btTan(btScalar x) { return tanf(x); }
|
SIMD_FORCE_INLINE btScalar btTan(btScalar x) { return tanf(x); }
|
||||||
SIMD_FORCE_INLINE btScalar btAcos(btScalar x) {
|
SIMD_FORCE_INLINE btScalar btAcos(btScalar x) {
|
||||||
btAssert(x <= btScalar(1.));
|
btAssert(x <= btScalar(1.));
|
||||||
if (x<btScalar(-1)) x=btScalar(-1); if (x>btScalar(1)) x=btScalar(1);
|
if (x<btScalar(-1))
|
||||||
|
x=btScalar(-1);
|
||||||
|
if (x>btScalar(1))
|
||||||
|
x=btScalar(1);
|
||||||
return acosf(x);
|
return acosf(x);
|
||||||
}
|
}
|
||||||
SIMD_FORCE_INLINE btScalar btAsin(btScalar x) {
|
SIMD_FORCE_INLINE btScalar btAsin(btScalar x) {
|
||||||
if (x<btScalar(-1)) x=btScalar(-1); if (x>btScalar(1)) x=btScalar(1);
|
if (x<btScalar(-1))
|
||||||
|
x=btScalar(-1);
|
||||||
|
if (x>btScalar(1))
|
||||||
|
x=btScalar(1);
|
||||||
return asinf(x);
|
return asinf(x);
|
||||||
}
|
}
|
||||||
SIMD_FORCE_INLINE btScalar btAtan(btScalar x) { return atanf(x); }
|
SIMD_FORCE_INLINE btScalar btAtan(btScalar x) { return atanf(x); }
|
||||||
|
|||||||
Reference in New Issue
Block a user