Ketchup Engine
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Collidable Class Reference

#include <Collidable.h>

Inheritance diagram for Collidable:
Inheritance graph
Collaboration diagram for Collidable:
Collaboration graph

Public Types

enum class  VOLUME_TYPE { BSPHERE , AABB }
 

Public Member Functions

 Collidable ()
 
 Collidable (const Collidable &)=delete
 
Collidableoperator= (const Collidable &)=delete
 
virtual ~Collidable ()
 
void SubmitRegistration ()
 Submit collision registration to the currently active Scene.
 
void SubmitDeregistration ()
 Submit collision deregistration from the currently active Scene.
 

Protected Member Functions

const CollisionVolumeGetCollisionVolume ()
 Gets a const reference to the Collidable's BSphere.
 
void SetColliderModel (Model *m, VOLUME_TYPE volumeType)
 Sets the Collidable's collider model.
 
void UpdateCollisionData (const Matrix &m)
 Updates the collision data using the transform m.
 
template<typename C >
void SetCollidableGroup ()
 Sets collidable group.
 

Private Member Functions

CollisionManager::ColTypeID GetTypeID ()
 
void RegisterToScene ()
 
void DeregisterFromScene ()
 
void SetDeregRef (CollidableGroup::CollidableListRef ref)
 
CollidableGroup::CollidableListRef GetDeregRef ()
 

Private Attributes

CollisionManager::ColTypeID m_colTypeID
 
RegistrationState m_regState
 
CollisionRegistrationCommandp_regCmd
 
CollisionDeregistrationCommandp_deregCmd
 
CollidableGroup::CollidableListRef m_deregRef
 
Model * p_colModel
 
CollisionVolumep_colVol
 

Friends

class CollidableAttorney
 

Member Enumeration Documentation

◆ VOLUME_TYPE

enum class Collidable::VOLUME_TYPE
strong
Enumerator
BSPHERE 
AABB 

Constructor & Destructor Documentation

◆ Collidable() [1/2]

Collidable::Collidable ( )

◆ Collidable() [2/2]

Collidable::Collidable ( const Collidable )
delete

◆ ~Collidable()

Collidable::~Collidable ( )
virtual

Member Function Documentation

◆ DeregisterFromScene()

void Collidable::DeregisterFromScene ( )
private

◆ GetCollisionVolume()

const CollisionVolume & Collidable::GetCollisionVolume ( )
protected

Gets a const reference to the Collidable's BSphere.

Haru, 3/8/2023.

Returns
The BSphere.

◆ GetDeregRef()

CollidableGroup::CollidableListRef Collidable::GetDeregRef ( )
private

◆ GetTypeID()

CollisionManager::ColTypeID Collidable::GetTypeID ( )
private

◆ operator=()

Collidable & Collidable::operator= ( const Collidable )
delete

◆ RegisterToScene()

void Collidable::RegisterToScene ( )
private

◆ SetCollidableGroup()

template<typename C >
void Collidable::SetCollidableGroup ( )
inlineprotected

Sets collidable group.

Template Parameters
CThe CollidableGroup to set this Collidable to.

◆ SetColliderModel()

void Collidable::SetColliderModel ( Model *  m,
VOLUME_TYPE  volumeType 
)
protected

Sets the Collidable's collider model.

Haru, 3/8/2023.

Parameters
mA pointer to the Model to use as a collider model.

◆ SetDeregRef()

void Collidable::SetDeregRef ( CollidableGroup::CollidableListRef  ref)
private

◆ SubmitDeregistration()

void Collidable::SubmitDeregistration ( )

Submit collision deregistration from the currently active Scene.

Haru, 3/8/2023.

◆ SubmitRegistration()

void Collidable::SubmitRegistration ( )

Submit collision registration to the currently active Scene.

Haru, 3/8/2023.

◆ UpdateCollisionData()

void Collidable::UpdateCollisionData ( const Matrix &  m)
protected

Updates the collision data using the transform m.

Haru, 3/8/2023.

Parameters
mA uniform scaled world transform

Friends And Related Function Documentation

◆ CollidableAttorney

friend class CollidableAttorney
friend

Member Data Documentation

◆ m_colTypeID

CollisionManager::ColTypeID Collidable::m_colTypeID
private

◆ m_deregRef

CollidableGroup::CollidableListRef Collidable::m_deregRef
private

◆ m_regState

RegistrationState Collidable::m_regState
private

◆ p_colModel

Model* Collidable::p_colModel
private

◆ p_colVol

CollisionVolume* Collidable::p_colVol
private

◆ p_deregCmd

CollisionDeregistrationCommand* Collidable::p_deregCmd
private

◆ p_regCmd

CollisionRegistrationCommand* Collidable::p_regCmd
private

The documentation for this class was generated from the following files: