17#include "../BulletFileLoader/btBulletFile.h"
25#ifdef USE_INTERNAL_EDGE_UTILITY
47 if (preSwapFilenameOut)
50 bulletFile2->
writeFile(preSwapFilenameOut);
93 for (i = 0; i < bulletFile2->
m_bvhs.
size(); i++)
120 if (shape && shapeData->
m_name)
226 if (shapePtr && *shapePtr)
237#ifdef USE_INTERNAL_EDGE_UTILITY
251 printf(
"error: no shape found\n");
258 if (shapePtr && *shapePtr)
267#ifdef USE_INTERNAL_EDGE_UTILITY
281 printf(
"error: no shape found\n");
313 if (isDoublePrecisionData)
@ TRIANGLE_MESH_SHAPE_PROXYTYPE
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
#define btTypedConstraintData2
void writeFile(const char *fileName)
void dumpChunks(bDNA *dna)
btAlignedObjectArray< bStructHandle * > m_dynamicsWorldInfo
btAlignedObjectArray< bStructHandle * > m_rigidBodies
virtual void parse(int verboseMode)
btAlignedObjectArray< bStructHandle * > m_bvhs
btAlignedObjectArray< bStructHandle * > m_constraints
btAlignedObjectArray< bStructHandle * > m_collisionObjects
btAlignedObjectArray< bStructHandle * > m_collisionShapes
int size() const
return the number of elements in the array
bool loadFileFromMemory(char *memoryBuffer, int len)
the memoryBuffer might be modified (for example if endian swaps are necessary)
btBulletWorldImporter(btDynamicsWorld *world=0)
bool loadFile(const char *fileName, const char *preSwapFilenameOut=0)
if you pass a valid preSwapFilenameOut, it will save a new file with a different endianness this pre-...
virtual bool convertAllObjects(bParse::btBulletFile *file)
virtual ~btBulletWorldImporter()
The btBvhTriangleMeshShape is a static-triangle mesh shape, it can only be used for fixed/non-moving ...
const btTriangleInfoMap * getTriangleInfoMap() const
btCollisionObject can be used to manage collision detection objects.
@ CF_CUSTOM_MATERIAL_CALLBACK
void setRestitution(btScalar rest)
void setCollisionFlags(int flags)
void setFriction(btScalar frict)
int getCollisionFlags() const
The btCollisionShape class provides an interface for collision shapes that can be shared among btColl...
The btDynamicsWorld is the interface class for several dynamics implementation, basic,...
void insert(const Key &key, const Value &value)
const Value * find(const Key &key) const
The btOptimizedBvh extends the btQuantizedBvh to create AABB tree for triangle meshes,...
virtual void deSerializeFloat(struct btQuantizedBvhFloatData &quantizedBvhFloatData)
virtual void deSerializeDouble(struct btQuantizedBvhDoubleData &quantizedBvhDoubleData)
The btRigidBody is the main class for rigid body objects.
static const btRigidBody * upcast(const btCollisionObject *colObj)
to keep collision detection and dynamics separate we don't store a rigidbody pointer but a rigidbody ...
btVector3 can be used to represent 3D points and vectors.
void deSerializeFloat(const struct btVector3FloatData &dataIn)
void deSerializeDouble(const struct btVector3DoubleData &dataIn)
char * duplicateName(const char *name)
virtual btCollisionObject * createCollisionObject(const btTransform &startTransform, btCollisionShape *shape, const char *bodyName)
static btRigidBody & getFixedBody()
virtual btOptimizedBvh * createOptimizedBvh()
acceleration and connectivity structures
void convertConstraintBackwardsCompatible281(btTypedConstraintData *constraintData, btRigidBody *rbA, btRigidBody *rbB, int fileVersion)
btHashMap< btHashPtr, btOptimizedBvh * > m_bvhMap
void convertConstraintDouble(btTypedConstraintDoubleData *constraintData, btRigidBody *rbA, btRigidBody *rbB, int fileVersion)
virtual void setDynamicsWorldInfo(const btVector3 &gravity, const btContactSolverInfo &solverInfo)
those virtuals are called by load and can be overridden by the user
void convertConstraintFloat(btTypedConstraintFloatData *constraintData, btRigidBody *rbA, btRigidBody *rbB, int fileVersion)
btHashMap< btHashString, btCollisionShape * > m_nameShapeMap
btHashMap< btHashPtr, btCollisionShape * > m_shapeMap
btCollisionShape * convertCollisionShape(btCollisionShapeData *shapeData)
void convertRigidBodyDouble(btRigidBodyDoubleData *colObjData)
void convertRigidBodyFloat(btRigidBodyFloatData *colObjData)
btHashMap< btHashPtr, btCollisionObject * > m_bodyMap
btHashMap< btHashPtr, const char * > m_objectNameMap
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
btTransformDoubleData m_worldTransform
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
btTransformFloatData m_worldTransform
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
btContactSolverInfoDoubleData m_solverInfo
btVector3DoubleData m_gravity
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
btVector3FloatData m_gravity
btContactSolverInfoFloatData m_solverInfo
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
this structure is not used, except for loading pre-2.82 .bullet files
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64