16 #ifndef BT_WORLD_IMPORTER_H 17 #define BT_WORLD_IMPORTER_H 29 struct ConstraintInput;
30 class btRigidBodyColladaInfo;
55 #ifdef BT_USE_DOUBLE_PRECISION 56 #define btRigidBodyData btRigidBodyDoubleData 58 #define btRigidBodyData btRigidBodyFloatData 59 #endif //BT_USE_DOUBLE_PRECISION 221 #endif //BT_WORLD_IMPORTER_H virtual btGeneric6DofSpringConstraint * createGeneric6DofSpringConstraint(btRigidBody &rbA, btRigidBody &rbB, const btTransform &frameInA, const btTransform &frameInB, bool useLinearReferenceFrameA)
btHashMap< btHashString, btCollisionShape * > m_nameShapeMap
virtual btGeneric6DofConstraint * createGeneric6DofConstraint(btRigidBody &rbA, btRigidBody &rbB, const btTransform &frameInA, const btTransform &frameInB, bool useLinearReferenceFrameA)
void convertConstraintBackwardsCompatible281(btTypedConstraintData *constraintData, btRigidBody *rbA, btRigidBody *rbB, int fileVersion)
btCollisionShape * convertCollisionShape(btCollisionShapeData *shapeData)
btTriangleInfoMap * getTriangleInfoMapByIndex(int index) const
virtual btStridingMeshInterfaceData * createStridingMeshInterfaceData(btStridingMeshInterfaceData *interfaceData)
point to point constraint between two rigidbodies each with a pivotpoint that descibes the 'ballsocke...
virtual class btTriangleIndexVertexArray * createTriangleMeshContainer()
void convertRigidBodyDouble(btRigidBodyDoubleData *colObjData)
virtual btBvhTriangleMeshShape * createBvhTriangleMeshShape(btStridingMeshInterface *trimesh, btOptimizedBvh *bvh)
virtual btCollisionShape * createSphereShape(btScalar radius)
virtual btConeTwistConstraint * createConeTwistConstraint(btRigidBody &rbA, btRigidBody &rbB, const btTransform &rbAFrame, const btTransform &rbBFrame)
virtual btTriangleInfoMap * createTriangleInfoMap()
void convertRigidBodyFloat(btRigidBodyFloatData *colObjData)
virtual btCollisionShape * createCylinderShapeZ(btScalar radius, btScalar height)
The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods It...
btAlignedObjectArray< unsigned char * > m_charIndexArrays
btHashMap< btHashString, btRigidBody * > m_nameBodyMap
The btGeatConstraint will couple the angular velocity for two bodies around given local axis and rati...
The btMultiSphereShape represents the convex hull of a collection of spheres.
virtual btRigidBody * createRigidBody(bool isDynamic, btScalar mass, const btTransform &startTransform, btCollisionShape *shape, const char *bodyName)
btGeneric6DofConstraint between two rigidbodies each with a pivotpoint that descibes the axis locatio...
btWorldImporter(btDynamicsWorld *world)
The btDynamicsWorld is the interface class for several dynamics implementation, basic, discrete, parallel, and continuous etc.
btHashMap< btHashPtr, btCollisionObject * > m_bodyMap
virtual class btConvexHullShape * createConvexHullShape()
int getImporterFlags() const
The btCollisionShape class provides an interface for collision shapes that can be shared among btColl...
int getNumCollisionShapes() const
btAlignedObjectArray< short int * > m_shortIndexArrays
virtual btCollisionShape * createConvexTriangleMeshShape(btStridingMeshInterface *trimesh)
virtual btCollisionShape * createCapsuleShapeY(btScalar radius, btScalar height)
virtual btCollisionShape * createCylinderShapeX(btScalar radius, btScalar height)
btCollisionShape * getCollisionShapeByName(const char *name)
virtual btCollisionShape * createCylinderShapeY(btScalar radius, btScalar height)
btAlignedObjectArray< btOptimizedBvh * > m_allocatedBvhs
virtual btCollisionShape * createConeShapeX(btScalar radius, btScalar height)
This class manages a mesh supplied by the btStridingMeshInterface interface.
virtual btCollisionShape * createCapsuleShapeZ(btScalar radius, btScalar height)
hinge constraint between two rigidbodies each with a pivotpoint that descibes the axis location in lo...
The btHashMap template class implements a generic and lightweight hashmap.
virtual btCollisionShape * createPlaneShape(const btVector3 &planeNormal, btScalar planeConstant)
shapes
int getVerboseMode() const
btAlignedObjectArray< btTriangleInfoMap * > m_allocatedTriangleInfoMaps
virtual void deleteAllData()
delete all memory collision shapes, rigid bodies, constraints etc.
btTypedConstraint * getConstraintByName(const char *name)
btHashMap< btHashPtr, const char * > m_objectNameMap
int getNumRigidBodies() const
virtual class btCompoundShape * createCompoundShape()
The btBvhTriangleMeshShape is a static-triangle mesh shape, it can only be used for fixed/non-moving ...
btCollisionObject * getRigidBodyByIndex(int index) const
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 ...
The btTriangleIndexVertexArray allows to access multiple triangle meshes, by indexing into existing t...
btAlignedObjectArray< btVector3DoubleData * > m_doubleVertexArrays
btAlignedObjectArray< btStridingMeshInterfaceData * > m_allocatedbtStridingMeshInterfaceDatas
virtual btGImpactMeshShape * createGimpactShape(btStridingMeshInterface *trimesh)
virtual btGearConstraint * createGearConstraint(btRigidBody &rbA, btRigidBody &rbB, const btVector3 &axisInA, const btVector3 &axisInB, btScalar ratio)
btOptimizedBvh * getBvhByIndex(int index) const
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 ...
virtual btCollisionShape * createConeShapeZ(btScalar radius, btScalar height)
virtual btOptimizedBvh * createOptimizedBvh()
acceleration and connectivity structures
btHashMap< btHashPtr, btTriangleInfoMap * > m_timMap
char * duplicateName(const char *name)
btHashMap< btHashString, btTypedConstraint * > m_nameConstraintMap
btCollisionObject can be used to manage collision detection objects.
virtual btCollisionShape * createBoxShape(const btVector3 &halfExtents)
btAlignedObjectArray< btTypedConstraint * > m_allocatedConstraints
virtual class btScaledBvhTriangleMeshShape * createScaledTrangleMeshShape(btBvhTriangleMeshShape *meshShape, const btVector3 &localScalingbtBvhTriangleMeshShape)
virtual btGeneric6DofSpring2Constraint * createGeneric6DofSpring2Constraint(btRigidBody &rbA, btRigidBody &rbB, const btTransform &frameInA, const btTransform &frameInB, int rotateOrder)
The btRigidBody is the main class for rigid body objects.
The btOptimizedBvh extends the btQuantizedBvh to create AABB tree for triangle meshes, through the btStridingMeshInterface.
virtual btCollisionObject * createCollisionObject(const btTransform &startTransform, btCollisionShape *shape, const char *bodyName)
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
btAlignedObjectArray< int * > m_indexArrays
void convertConstraintFloat(btTypedConstraintFloatData *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
virtual btTriangleIndexVertexArray * createMeshInterface(btStridingMeshInterfaceData &meshData)
virtual btCollisionShape * createConeShapeY(btScalar radius, btScalar height)
btVector3 can be used to represent 3D points and vectors.
int getNumConstraints() const
virtual btPoint2PointConstraint * createPoint2PointConstraint(btRigidBody &rbA, btRigidBody &rbB, const btVector3 &pivotInA, const btVector3 &pivotInB)
constraints
btConeTwistConstraint can be used to simulate ragdoll joints (upper arm, leg etc) ...
The btStridingMeshInterface is the interface class for high performance generic access to triangle me...
btAlignedObjectArray< char * > m_allocatedNames
btTypedConstraint * getConstraintByIndex(int index) const
TypedConstraint is the baseclass for Bullet constraints and vehicles.
const char * getNameForPointer(const void *ptr) const
static btRigidBody & getFixedBody()
void setVerboseMode(int verboseMode)
int getNumTriangleInfoMaps() const
btAlignedObjectArray< btCollisionShape * > m_allocatedCollisionShapes
virtual btHingeConstraint * createHingeConstraint(btRigidBody &rbA, btRigidBody &rbB, const btTransform &rbAFrame, const btTransform &rbBFrame, bool useReferenceFrameA=false)
The btScaledBvhTriangleMeshShape allows to instance a scaled version of an existing btBvhTriangleMesh...
btCollisionShape * getCollisionShapeByIndex(int index)
btRigidBody * getRigidBodyByName(const char *name)
virtual btSliderConstraint * createSliderConstraint(btRigidBody &rbA, btRigidBody &rbB, const btTransform &frameInA, const btTransform &frameInB, bool useLinearReferenceFrameA)
The btConvexHullShape implements an implicit convex hull of an array of vertices. ...
btHashMap< btHashPtr, btCollisionShape * > m_shapeMap
The btTriangleInfoMap stores edge angle information for some triangles. You can compute this informat...
The btCompoundShape allows to store multiple other btCollisionShapes This allows for moving concave c...
btAlignedObjectArray< btTriangleIndexVertexArray * > m_allocatedTriangleIndexArrays
btAlignedObjectArray< btCollisionObject * > m_allocatedRigidBodies
virtual ~btWorldImporter()
btHashMap< btHashPtr, btOptimizedBvh * > m_bvhMap
btDynamicsWorld * m_dynamicsWorld
void setImporterFlags(int importerFlags)
btAlignedObjectArray< btVector3FloatData * > m_floatVertexArrays
virtual btCollisionShape * createCapsuleShapeX(btScalar radius, btScalar height)
Generic 6 DOF constraint that allows to set spring motors to any translational and rotational DOF...
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 ...
virtual class btMultiSphereShape * createMultiSphereShape(const btVector3 *positions, const btScalar *radi, int numSpheres)
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64 ...
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
void convertConstraintDouble(btTypedConstraintDoubleData *constraintData, btRigidBody *rbA, btRigidBody *rbB, int fileVersion)