Bullet Collision Detection & Physics Library
btCollisionWorldImporter.h
Go to the documentation of this file.
1/*
2Bullet Continuous Collision Detection and Physics Library
3Copyright (c) 2003-2014 Erwin Coumans http://bulletphysics.org
4
5This software is provided 'as-is', without any express or implied warranty.
6In no event will the authors be held liable for any damages arising from the use of this software.
7Permission is granted to anyone to use this software for any purpose,
8including commercial applications, and to alter it and redistribute it freely,
9subject to the following restrictions:
10
111. 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.
122. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
133. This notice may not be removed or altered from any source distribution.
14*/
15
16
17#ifndef BT_COLLISION_WORLD_IMPORTER_H
18#define BT_COLLISION_WORLD_IMPORTER_H
19
24
28
29
30struct ConstraintInput;
37class btOptimizedBvh;
48
49
50
51
53{
54protected:
56
58
61
67
68
70
74
77
78
81
84
86
89
90
91 //methods
92
93
94
95 char* duplicateName(const char* name);
96
98
99
100public:
101
103
105
107
110 virtual void deleteAllData();
111
112 void setVerboseMode(int verboseMode)
113 {
114 m_verboseMode = verboseMode;
115 }
116
117 int getVerboseMode() const
118 {
119 return m_verboseMode;
120 }
121
122 // query for data
123 int getNumCollisionShapes() const;
125 int getNumRigidBodies() const;
126 btCollisionObject* getRigidBodyByIndex(int index) const;
127
128 int getNumBvhs() const;
129 btOptimizedBvh* getBvhByIndex(int index) const;
130 int getNumTriangleInfoMaps() const;
132
133 // queris involving named objects
134 btCollisionShape* getCollisionShapeByName(const char* name);
136
137
138 const char* getNameForPointer(const void* ptr) const;
139
141
142
143
144 //bodies
145
146 virtual btCollisionObject* createCollisionObject( const btTransform& startTransform, btCollisionShape* shape,const char* bodyName);
147
149
150 virtual btCollisionShape* createPlaneShape(const btVector3& planeNormal,btScalar planeConstant);
151 virtual btCollisionShape* createBoxShape(const btVector3& halfExtents);
153 virtual btCollisionShape* createCapsuleShapeX(btScalar radius, btScalar height);
154 virtual btCollisionShape* createCapsuleShapeY(btScalar radius, btScalar height);
155 virtual btCollisionShape* createCapsuleShapeZ(btScalar radius, btScalar height);
156
160 virtual btCollisionShape* createConeShapeX(btScalar radius,btScalar height);
161 virtual btCollisionShape* createConeShapeY(btScalar radius,btScalar height);
162 virtual btCollisionShape* createConeShapeZ(btScalar radius,btScalar height);
166#ifdef SUPPORT_GIMPACT_SHAPE_IMPORT
167 virtual btGImpactMeshShape* createGimpactShape(btStridingMeshInterface* trimesh);
168#endif //SUPPORT_GIMPACT_SHAPE_IMPORT
170
172 virtual class btCompoundShape* createCompoundShape();
173 virtual class btScaledBvhTriangleMeshShape* createScaledTrangleMeshShape(btBvhTriangleMeshShape* meshShape,const btVector3& localScalingbtBvhTriangleMeshShape);
174
175 virtual class btMultiSphereShape* createMultiSphereShape(const btVector3* positions,const btScalar* radi,int numSpheres);
176
178
182
183
184
185
186};
187
188
189#endif //BT_WORLD_IMPORTER_H
float btScalar
The btScalar type abstracts floating point numbers, to easily switch between double and single floati...
Definition: btScalar.h:292
The btAlignedObjectArray template class uses a subset of the stl::vector interface for its methods It...
The btBvhTriangleMeshShape is a static-triangle mesh shape, it can only be used for fixed/non-moving ...
btCollisionObject can be used to manage collision detection objects.
The btCollisionShape class provides an interface for collision shapes that can be shared among btColl...
btAlignedObjectArray< btOptimizedBvh * > m_allocatedBvhs
btHashMap< btHashPtr, btCollisionShape * > m_shapeMap
virtual void deleteAllData()
delete all memory collision shapes, rigid bodies, constraints etc.
virtual btStridingMeshInterfaceData * createStridingMeshInterfaceData(btStridingMeshInterfaceData *interfaceData)
btHashMap< btHashPtr, btTriangleInfoMap * > m_timMap
virtual btOptimizedBvh * createOptimizedBvh()
acceleration and connectivity structures
btAlignedObjectArray< btTriangleIndexVertexArray * > m_allocatedTriangleIndexArrays
virtual btCollisionShape * createCylinderShapeX(btScalar radius, btScalar height)
btHashMap< btHashPtr, btCollisionObject * > m_bodyMap
bool convertAllObjects(btBulletSerializedArrays *arrays)
btCollisionShape * getCollisionShapeByName(const char *name)
virtual btCollisionShape * createPlaneShape(const btVector3 &planeNormal, btScalar planeConstant)
shapes
char * duplicateName(const char *name)
virtual class btTriangleIndexVertexArray * createTriangleMeshContainer()
btCollisionShape * convertCollisionShape(btCollisionShapeData *shapeData)
void setVerboseMode(int verboseMode)
virtual btCollisionShape * createConeShapeZ(btScalar radius, btScalar height)
btTriangleInfoMap * getTriangleInfoMapByIndex(int index) const
btAlignedObjectArray< btCollisionObject * > m_allocatedRigidBodies
btHashMap< btHashPtr, const char * > m_objectNameMap
virtual class btCompoundShape * createCompoundShape()
virtual class btMultiSphereShape * createMultiSphereShape(const btVector3 *positions, const btScalar *radi, int numSpheres)
virtual btCollisionShape * createConeShapeY(btScalar radius, btScalar height)
virtual btCollisionShape * createSphereShape(btScalar radius)
btCollisionShape * getCollisionShapeByIndex(int index)
btHashMap< btHashString, btCollisionObject * > m_nameColObjMap
virtual btCollisionShape * createBoxShape(const btVector3 &halfExtents)
btAlignedObjectArray< btVector3DoubleData * > m_doubleVertexArrays
virtual btCollisionShape * createCylinderShapeZ(btScalar radius, btScalar height)
virtual class btConvexHullShape * createConvexHullShape()
btAlignedObjectArray< int * > m_indexArrays
const char * getNameForPointer(const void *ptr) const
virtual btTriangleInfoMap * createTriangleInfoMap()
virtual btCollisionShape * createConeShapeX(btScalar radius, btScalar height)
btCollisionObject * getCollisionObjectByName(const char *name)
btAlignedObjectArray< char * > m_allocatedNames
btHashMap< btHashPtr, btOptimizedBvh * > m_bvhMap
virtual btBvhTriangleMeshShape * createBvhTriangleMeshShape(btStridingMeshInterface *trimesh, btOptimizedBvh *bvh)
btAlignedObjectArray< short int * > m_shortIndexArrays
btAlignedObjectArray< btStridingMeshInterfaceData * > m_allocatedbtStridingMeshInterfaceDatas
btOptimizedBvh * getBvhByIndex(int index) const
btCollisionObject * getRigidBodyByIndex(int index) const
btAlignedObjectArray< btCollisionObject * > m_allocatedCollisionObjects
virtual btCollisionShape * createConvexTriangleMeshShape(btStridingMeshInterface *trimesh)
virtual class btScaledBvhTriangleMeshShape * createScaledTrangleMeshShape(btBvhTriangleMeshShape *meshShape, const btVector3 &localScalingbtBvhTriangleMeshShape)
virtual btCollisionShape * createCylinderShapeY(btScalar radius, btScalar height)
virtual btCollisionShape * createCapsuleShapeY(btScalar radius, btScalar height)
virtual btCollisionShape * createCapsuleShapeZ(btScalar radius, btScalar height)
btAlignedObjectArray< btVector3FloatData * > m_floatVertexArrays
btAlignedObjectArray< btTriangleInfoMap * > m_allocatedTriangleInfoMaps
virtual btCollisionObject * createCollisionObject(const btTransform &startTransform, btCollisionShape *shape, const char *bodyName)
those virtuals are called by load and can be overridden by the user
virtual btTriangleIndexVertexArray * createMeshInterface(btStridingMeshInterfaceData &meshData)
btHashMap< btHashString, btCollisionShape * > m_nameShapeMap
btCollisionWorldImporter(btCollisionWorld *world)
btAlignedObjectArray< unsigned char * > m_charIndexArrays
btAlignedObjectArray< btCollisionShape * > m_allocatedCollisionShapes
virtual btCollisionShape * createCapsuleShapeX(btScalar radius, btScalar height)
CollisionWorld is interface and container for the collision detection.
The btCompoundShape allows to store multiple other btCollisionShapes This allows for moving concave c...
btConeTwistConstraint can be used to simulate ragdoll joints (upper arm, leg etc)
The btConvexHullShape implements an implicit convex hull of an array of vertices.
This class manages a mesh supplied by the btStridingMeshInterface interface.
The btGeatConstraint will couple the angular velocity for two bodies around given local axis and rati...
btGeneric6DofConstraint between two rigidbodies each with a pivotpoint that descibes the axis locatio...
Generic 6 DOF constraint that allows to set spring motors to any translational and rotational DOF.
The btHashMap template class implements a generic and lightweight hashmap.
Definition: btHashMap.h:226
hinge constraint between two rigidbodies each with a pivotpoint that descibes the axis location in lo...
The btMultiSphereShape represents the convex hull of a collection of spheres.
The btOptimizedBvh extends the btQuantizedBvh to create AABB tree for triangle meshes,...
point to point constraint between two rigidbodies each with a pivotpoint that descibes the 'ballsocke...
The btScaledBvhTriangleMeshShape allows to instance a scaled version of an existing btBvhTriangleMesh...
The btStridingMeshInterface is the interface class for high performance generic access to triangle me...
The btTransform class supports rigid transforms with only translation and rotation and no scaling/she...
Definition: btTransform.h:34
The btTriangleIndexVertexArray allows to access multiple triangle meshes, by indexing into existing t...
btVector3 can be used to represent 3D points and vectors.
Definition: btVector3.h:84
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
do not change those serialization structures, it requires an updated sBulletDNAstr/sBulletDNAstr64
The btTriangleInfoMap stores edge angle information for some triangles. You can compute this informat...