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:
erwin.coumans
2010-03-02 09:32:34 +00:00
parent c517f14dd4
commit 8fbe399ea4
19 changed files with 741 additions and 577 deletions

View File

@@ -40,6 +40,7 @@
#include "bullet_btPositionAndRadius.h"
#include "bullet_btMultiSphereShapeData.h"
#include "bullet_btIntIndexData.h"
#include "bullet_btShortIntIndexData.h"
#include "bullet_btShortIntIndexTripletData.h"
#include "bullet_btMeshPartData.h"
#include "bullet_btStridingMeshInterfaceData.h"

View File

@@ -47,6 +47,7 @@ namespace Bullet {
class btPositionAndRadius;
class btMultiSphereShapeData;
class btIntIndexData;
class btShortIntIndexData;
class btShortIntIndexTripletData;
class btMeshPartData;
class btStridingMeshInterfaceData;

View File

@@ -35,6 +35,7 @@ namespace Bullet {
btVector3DoubleData *m_vertices3d;
btIntIndexData *m_indices32;
btShortIntIndexTripletData *m_3indices16;
btShortIntIndexData *m_indices16;
int m_numTriangles;
int m_numVertices;
};

View File

@@ -37,6 +37,7 @@ namespace Bullet {
int m_escapeIndex;
int m_subPart;
int m_triangleIndex;
char m_pad[4];
};
}

View File

@@ -37,6 +37,7 @@ namespace Bullet {
int m_escapeIndex;
int m_subPart;
int m_triangleIndex;
char m_pad[4];
};
}

View File

@@ -41,9 +41,9 @@ namespace Bullet {
int m_numQuantizedContiguousNodes;
btOptimizedBvhNodeFloatData *m_contiguousNodesPtr;
btQuantizedBvhNodeData *m_quantizedContiguousNodesPtr;
btBvhSubtreeInfoData *m_subTreeInfoPtr;
int m_traversalMode;
int m_numSubtreeHeaders;
btBvhSubtreeInfoData *m_subTreeInfoPtr;
};
}

View File

@@ -0,0 +1,40 @@
/* Copyright (C) 2006-2009 Erwin Coumans & Charlie C
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*/
// Auto generated from makesdna dna.c
#ifndef __BULLET_BTSHORTINTINDEXDATA__H__
#define __BULLET_BTSHORTINTINDEXDATA__H__
// -------------------------------------------------- //
#include "bullet_Common.h"
namespace Bullet {
// ---------------------------------------------- //
class btShortIntIndexData
{
public:
short m_value;
char m_pad[2];
};
}
#endif//__BULLET_BTSHORTINTINDEXDATA__H__