Make .bullet serialization mode robust:
Deal with broken DNA serialization. Bullet 2.76 release revision 2035 - 2046 was broken, and this includes the Maya Dynamica plugin. Added some workaround to deal with the broken .bullet files, instead of crashing.
This commit is contained in:
@@ -71,6 +71,10 @@ public:
|
||||
{
|
||||
return btBroadphaseProxy::isConvex(getShapeType());
|
||||
}
|
||||
SIMD_FORCE_INLINE bool isNonMoving() const
|
||||
{
|
||||
return btBroadphaseProxy::isNonMoving(getShapeType());
|
||||
}
|
||||
SIMD_FORCE_INLINE bool isConcave() const
|
||||
{
|
||||
return btBroadphaseProxy::isConcave(getShapeType());
|
||||
|
||||
@@ -220,6 +220,7 @@ const char* btStridingMeshInterface::serialize(void* dataBuffer, btSerializer* s
|
||||
getLockedReadOnlyVertexIndexBase(&vertexbase,numverts,type,stride,&indexbase,indexstride,numtriangles,gfxindextype,part);
|
||||
memPtr->m_numTriangles = numtriangles;//indices = 3*numtriangles
|
||||
memPtr->m_numVertices = numverts;
|
||||
memPtr->m_indices16 = 0;
|
||||
memPtr->m_indices32 = 0;
|
||||
memPtr->m_3indices16 = 0;
|
||||
memPtr->m_vertices3f = 0;
|
||||
|
||||
@@ -104,7 +104,11 @@ struct btIntIndexData
|
||||
int m_value;
|
||||
};
|
||||
|
||||
|
||||
struct btShortIntIndexData
|
||||
{
|
||||
short m_value;
|
||||
char m_pad[2];
|
||||
};
|
||||
|
||||
struct btShortIntIndexTripletData
|
||||
{
|
||||
@@ -121,6 +125,8 @@ struct btMeshPartData
|
||||
btIntIndexData *m_indices32;
|
||||
btShortIntIndexTripletData *m_3indices16;
|
||||
|
||||
btShortIntIndexData *m_indices16;//backwards compatibility
|
||||
|
||||
int m_numTriangles;//length of m_indices = m_numTriangles
|
||||
int m_numVertices;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user