20 #if !defined( __CELLOS_LV2__) && !defined(__MWERKS__)
27 #ifdef BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES
35 #else//BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES
42 #endif //BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES
54 #ifdef BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES
64 #else//BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES
77 #endif//BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES
83 :
bFile(fileName,
"BULLET ")
91 :
bFile(memoryBuffer,len,
"BULLET ")
146 char *dataPtrHead = 0;
161 char *
id =
readStruct(dataPtrHead, dataChunk);
227 printf(
"unknown chunk\n");
233 printf(
"skipping BT_QUANTIZED_BVH_CODE due to broken DNA\n");
243 if (
mFlags &FD_ENDIAN_SWAP)
268 #ifdef BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES
274 fwrite(&dataChunk,
sizeof(
bChunkInd),1,fp);
285 fwrite(&dataChunk,
sizeof(
bChunkInd),1,fp);
291 #else//BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES
296 fwrite(&dataChunk,
sizeof(
bChunkInd),1,fp);
303 fwrite(&dataChunk,
sizeof(
bChunkInd),1,fp);
306 #endif//BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES
312 #ifdef BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES
339 #else//BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES
356 #endif//BT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES
362 littleEndian= ((
char*)&littleEndian)[0];
371 FILE *fp = fopen(fileName,
"wb");
377 endian= ((
char*)&endian)[0];
408 printf(
"Error: cannot open file %s for writing\n",fileName);
420 dataChunk.
code = code;
424 dataChunk.
oldPtr = oldPtr;
431 assert(len==elemBytes);
void push_back(const T &_Val)
btAlignedObjectArray< char * > m_dataBlocks
int getNextBlock(bChunkInd *dataChunk, const char *dataPtr, const int flags)
btAlignedObjectArray< bStructHandle * > m_triangleInfoMaps
#define BT_CONSTRAINT_CODE
btAlignedObjectArray< bStructHandle * > m_constraints
#define BT_MULTIBODY_CODE
char * readStruct(char *head, class bChunkInd &chunk)
virtual void parseInternal(int verboseMode, char *memDna, int memDnaLength)
#define BT_QUANTIZED_BVH_CODE
void addStruct(const char *structType, void *data, int len, void *oldPtr, int code)
btAlignedObjectArray< bStructHandle * > m_collisionObjects
#define BT_DYNAMICSWORLD_CODE
virtual void writeDNA(FILE *fp)
void swapLen(char *dataPtr)
int size() const
return the number of elements in the array
virtual void parse(int verboseMode)
#define btAlignedFree(ptr)
void insert(const Key &key, const Value &value)
btAlignedObjectArray< bStructHandle * > m_softBodies
#define BT_COLLISIONOBJECT_CODE
char sBulletDNAstr[]
only the 32bit versions for now
#define SIZEOFBLENDERHEADER
virtual int write(const char *fileName, bool fixupPointers=false)
virtual void addDataBlock(char *dataBlock)
btAlignedObjectArray< bStructHandle * > m_bvhs
btAlignedObjectArray< bStructHandle * > m_multiBodies
#define BT_RIGIDBODY_CODE
btAlignedObjectArray< bChunkInd > m_chunks
btAlignedObjectArray< bStructHandle * > m_collisionShapes
short * getStruct(int ind)
#define btAlignedAlloc(size, alignment)
void init(char *data, int len, bool swap=false)
virtual void writeChunks(FILE *fp, bool fixupPointers)
#define BT_TRIANLGE_INFO_MAP
btAlignedObjectArray< bStructHandle * > m_dynamicsWorldInfo
btAlignedObjectArray< bStructHandle * > m_rigidBodies
int getReverseType(short type)
btHashMap< btHashPtr, bChunkInd > m_chunkPtrPtrMap
static int getOffset(int flags)