BulletBase class
          #include <esp/physics/bullet/BulletBase.h>
        
        This class is intended to implement bullet-specific.
Derived classes
- class BulletArticulatedLink
- class BulletRigidObject
- An individual rigid object instance implementing an interface with Bullet physics to enable dynamic objects. See btRigidBody.
- class BulletRigidStage
- An individual rigid stage instance implementing an interface with Bullet physics to enable dynamics. See btCollisionObject.
Public static functions
- 
              static void constructJoinedConvexShapeFromMeshes(const Magnum::Matrix4& transformFromParentToWorld, const std:: vector<assets:: CollisionMeshData>& meshGroup, const assets:: MeshTransformNode& node, btConvexHullShape* bConvexShape) 
- Recursively construct a btConvexHullShape for collision by joining loaded mesh assets.
- 
              static void constructConvexShapesFromMeshes(const Magnum::Matrix4& transformFromParentToWorld, const std:: vector<assets:: CollisionMeshData>& meshGroup, const assets:: MeshTransformNode& node, btCompoundShape* bObjectShape, std:: vector<std:: unique_ptr<btConvexHullShape>>& bObjectConvexShapes) 
- Recursively construct a btCompoundShape for collision from loaded mesh assets. A btConvexHullShape is constructed for each sub-component, transformed to object-local space and added to the compound in a flat manner for efficiency.
Constructors, destructors, conversion operators
- 
              BulletBase(std::shared_ptr<btMultiBodyDynamicsWorld> bWorld, std:: shared_ptr<std:: map<const btCollisionObject*, int>> collisionObjToObjIds) 
- ~BulletBase() virtual
- Destructor cleans up simulation structures for the object.
Public functions
- auto getMargin() const -> double virtual
- Get the scalar collision margin of an object. Retun 0.0 for a esp::physics:: RigidStage. See btCompoundShape:: getMargin. 
- void setMargin(const double margin) virtual
- Set the scalar collision margin of an object. Does not affect esp::physics:: RigidStage. See btCompoundShape:: setMargin. 
- 
              auto getCollisionShapeAabb() const -> Magnum::Range3D pure virtual 
- Query the Aabb from bullet physics for the root compound shape of the rigid body in its local space. See btCompoundShape::getAabb. 
Protected variables
- 
              std::shared_ptr<btMultiBodyDynamicsWorld> bWorld_ 
- A pointer to the Bullet world to which this object belongs. See btMultiBodyDynamicsWorld.
- 
              std::vector<std:: unique_ptr<btRigidBody>> bStaticCollisionObjects_ 
- Static data: All components of a esp::physics:: RigidStage are stored here. Also, all objects set to STATIC are stored here. 
- 
              std::vector<std:: unique_ptr<btConvexHullShape>> bObjectConvexShapes_ 
- Object data: Composite convex collision shape.
- 
              std::vector<std:: unique_ptr<btCollisionShape>> bGenericShapes_ 
- 
              std::shared_ptr<std:: map<const btCollisionObject*, int>> collisionObjToObjIds_ 
Function documentation
              static void esp::
            Recursively construct a btConvexHullShape for collision by joining loaded mesh assets.
| Parameters | |
|---|---|
| transformFromParentToWorld | The cumulative parent-to-world transformation matrix constructed by composition down the MeshTransformNode tree to the current node. | 
| meshGroup | Access structure for collision mesh data. | 
| node | The current MeshTransformNode in the recursion. | 
| bConvexShape | The convex we are building. Should be a new, empty shape when passed into entry point. | 
              static void esp::
            Recursively construct a btCompoundShape for collision from loaded mesh assets. A btConvexHullShape is constructed for each sub-component, transformed to object-local space and added to the compound in a flat manner for efficiency.
| Parameters | |
|---|---|
| transformFromParentToWorld | The cumulative parent-to-world transformation matrix constructed by composition down the MeshTransformNode tree to the current node. | 
| meshGroup | Access structure for collision mesh data. | 
| node | The current MeshTransformNode in the recursion. | 
| bObjectShape | The compound shape parent for all generated convexes | 
| bObjectConvexShapes | Datastructure to cache generated convex shapes | 
              double esp::
            Get the scalar collision margin of an object. Retun 0.0 for a esp::
| Returns | The scalar collision margin of the object. | 
|---|
              void esp::
            Set the scalar collision margin of an object. Does not affect esp::
| Parameters | |
|---|---|
| margin | The new scalar collision margin of the object. | 
              Magnum::
            Query the Aabb from bullet physics for the root compound shape of the rigid body in its local space. See btCompoundShape::
| Returns | The Aabb. | 
|---|
Variable documentation
              std::
list of btCollisionShape for storing arbitrary collision shapes referenced within the bObjectShape_.
              std::
keep a map of collision objects to object ids for quick lookups from Bullet collision checking.