Bullet Physics 3D Block Toy
Public Member Functions | Private Member Functions | Private Attributes | List of all members
CObjectManager Class Reference

The object manager. More...

#include <ObjectManager.h>

Inheritance diagram for CObjectManager:
CCommon

Public Member Functions

 CObjectManager ()
 Constructor. More...
 
 ~CObjectManager ()
 Destructor. More...
 
CObjectCreate (eObject, const CInstanceDesc &)
 Create an object. More...
 
void Update ()
 Update. More...
 
void Clear ()
 Reset to initial conditions. More...
 
void Draw ()
 Draw all objects.
 

Private Member Functions

void CullDeadObjects ()
 Cull dead objects. More...
 

Private Attributes

std::list< CObject * > m_stdObjectList
 Object list.
 

Additional Inherited Members

- Protected Attributes inherited from CCommon
const float m_fFloorHt = 0.5f
 Floor height.
 
const Vector3 m_vPlanePos = Vector3(0.0f, 0.0f, 100.0f)
 Plane position.
 
const Vector3 m_vPlaneSize = Vector3(600.0f, 2.0f*m_fFloorHt, 600.0f)
 Plane size.
 
const float m_fMoonRadius = 25.0f
 Moon radius.
 
const float m_fBallRadius = 2.0f
 Ball radius.
 
const Vector3 m_vBoxSize = Vector3(9.0f, 6.0f, 6.0f)
 Box size.

 
const float m_fTetrahedronSize = 16.0f
 Tetrahedron size.
 
const float m_fIcosahedronSize = 16.0f
 Icosahedron size.
 
const float m_fDodecahedronSize = 16.0f
 Dodecahedron size.
 
const float m_fTeapotSize = 8.0f
 Teapot size.
 
- Static Protected Attributes inherited from CCommon
static CRendererm_pRenderer = nullptr
 Pointer to the renderer.
 
static LBaseCamera * m_pCamera = nullptr
 Pointer to the camera.
 
static CObjectManagerm_pObjectManager = nullptr
 Pointer to object manager.
 
static btDiscreteDynamicsWorld * m_pPhysicsWorld = nullptr
 Pointer to physics engine.
 
static btDefaultCollisionConfiguration * m_pConfig = nullptr
 Bullet physics configuration.
 
static btCollisionDispatcher * m_pDispatcher = nullptr
 Bullet physics dispatcher.
 
static btBroadphaseInterface * m_pBroadphase = nullptr
 Bullet physics broadphase.
 
static btSequentialImpulseConstraintSolver * m_pSolver = nullptr
 Bullet physics constraint solver.
 
static btAlignedObjectArray< btCollisionShape * > m_btCollisionShapes
 Collision shapes.
 
static bool m_bCollisionSoundsMuted = false
 Mute collision sounds.
 

Detailed Description

A collection of all of the game objects.

Constructor & Destructor Documentation

◆ CObjectManager()

CObjectManager::CObjectManager ( )

Default constructor.

◆ ~CObjectManager()

CObjectManager::~CObjectManager ( )

Destruct all of the objects in the object list.

Member Function Documentation

◆ Clear()

void CObjectManager::Clear ( )

Delete all of the objects managed by the object manager. This involves deleting all of the CObject instances pointed to by the object list, then clearing the object list.

◆ Create()

CObject * CObjectManager::Create ( eObject  obj,
const CInstanceDesc d 
)

Create an object instance and insert it into the object list.

Parameters
objObject type.
dMesh descriptor.
Returns
Pointer to the object created.

◆ CullDeadObjects()

void CObjectManager::CullDeadObjects ( )
private

Iterate through the objects and check whether their "is dead" flag has been set. If so, then delete its pointer from the object list and destruct the object.

◆ Update()

void CObjectManager::Update ( )

Update all objects. This function has two tasks, playing collision sounds and deleting delete all objects that have fallen off the plane and dropped far enough.