4#include "CollisionManager.h"
5#include "../../Scene/SceneAttorney.h"
7#include "CollidableGroup.h"
29 Collidable(
const Collidable&) =
delete;
30 Collidable& operator=(
const Collidable&) =
delete;
31 virtual ~Collidable();
Defines the registration states for GameObjects.
RegistrationState
Enum class representing the registration states of GameObjects.
Definition RegistrationState.h:19
Provides controlled access to the Collidable class for specific classes.
Definition CollidableAttorney.h:14
CollidableCollection::iterator CollidableCollectionRef
Type alias for the collection iterator.
Definition CollidableGroup.h:27
Model * pColModel
Pointer to the collider model.
Definition Collidable.h:147
RegistrationState RegStateCurr
The current registration state of the GameObject.
Definition Collidable.h:122
void SubmitCollisionRegistration()
Submits the collision registration for the GameObject.
Definition Collidable.cpp:38
const CollisionVolumeBSphere & GetDefaultBSphere() const
Gets the collision volume bounding sphere.
Definition Collidable.cpp:76
CollisionVolume * pColVolume
Pointer to the collision volume for the GameObject.
Definition Collidable.h:142
void VisualizeCollisionVolume(VolumeType t, const Vect &color) const
Sets the color of the bounding sphere for visualization.
Definition Collidable.cpp:120
CollidableGroup::CollidableCollectionRef & GetGroupRef()
Gets the group reference for the GameObject.
Definition Collidable.cpp:66
CollidableGroup::CollidableCollectionRef pGroupRef
Reference to the collidable group collection iterator.
Definition Collidable.h:137
void SceneRegistration()
Registers the GameObject for collisions in the scene.
Definition Collidable.cpp:52
void VisualizeGroupAABB(const Vect &color) const
Displays the group AABB for debugging purposes.
Definition Collidable.cpp:149
void SetColliderModel(Model *mod, VolumeType v)
Sets the collider model for the GameObject.
Definition Collidable.cpp:88
CollisionVolumeBSphere * defaultBSphere
Default bounding sphere for the collidable object.
Definition Collidable.h:152
CollisionDeregistrationCommand * ptrColDeregistrationCmd
Pointer to the collision deregistration command for the GameObject.
Definition Collidable.h:132
void UpdateDefaultBSphere(const Matrix &mat)
Updates the default bounding sphere for the collidable object.
Definition Collidable.cpp:82
CollisionRegistrationCommand * ptrColRegistrationCmd
Pointer to the collision registration command for the GameObject.
Definition Collidable.h:127
const CollisionVolume & GetCollisionVolume()
Gets the collision volume bounding sphere.
Definition Collidable.cpp:71
void SceneDeregistration()
Deregisters the GameObject from collisions in the scene.
Definition Collidable.cpp:59
void UpdateCollisionData(const Matrix &mat)
Updates the collision data for the GameObject.
Definition Collidable.cpp:113
void VisualizeDefaultBSphere(const Vect &color) const
Sets the default bounding sphere color for the collidable object.
Definition Collidable.cpp:143
void SetCollidableGroup()
Sets the collidable group for the object.
Definition Collidable.h:38
void SubmitCollisionDeregistration()
Submits the collision deregistration for the GameObject.
Definition Collidable.cpp:45
CollisionManager::PWTypeID myTypeID
The type ID of the collidable group.
Definition Collidable.h:117
Command to handle the deregistration of a collidable object for collision detection.
Definition CollisionDeregistrationCommand.h:17
PWTypeID GetTypeID()
Gets the type ID for the specified collidable type.
Definition CollisionManager.h:59
static const PWTypeID PWID_UNDEFINED
The undefined type ID.
Definition CollisionManager.h:34
int PWTypeID
Type alias for the type ID.
Definition CollisionManager.h:29
Command to handle the registration of a collidable object for collision detection.
Definition CollisionRegistrationCommand.h:17
Represents an axis-aligned bounding box (AABB) collision volume.
Definition CollisionVolumeAABB.h:23
Represents a bounding sphere collision volume.
Definition CollisionVolumeBSphere.h:14
Base class for collision volumes.
Definition CollisionVolume.h:19
static CollisionManager * GetCollisionManager()
Gets the collision manager for the current scene.
Definition SceneAttorney.h:165