Wraith  0.1.5
Basic 3D game engine in C++
CollisionVolume Class Referenceabstract

A collision volume base class. More...

#include <CollisionVolume.h>

Inheritance diagram for CollisionVolume:
Inheritance graph
Collaboration diagram for CollisionVolume:
Collaboration graph

Public Member Functions

 CollisionVolume (const CollisionVolume &)=default
 
CollisionVolumeoperator= (const CollisionVolume &)=default
 
 CollisionVolume (CollisionVolume &&)=default
 
CollisionVolumeoperator= (CollisionVolume &&)=default
 
virtual void computeData (Model *pModel, const Matrix &worldMatrix)=0
 Calculates the data. More...
 
virtual bool intersectAccept (const CollisionVolume &collisionVolume) const =0
 Accepts a collision volume to perform intersect test. More...
 
virtual bool intersectVisitor (const CollisionVolumeBSphere &collisionBSphere) const =0
 Visits a collision volume BSphere to perform intersect test. More...
 
virtual bool intersectVisitor (const CollisionVolumeAABB &AABB) const =0
 Visits a collision volume AABB to perform intersect test. More...
 
virtual bool intersectVisitor (const CollisionVolumeOBB &OBB) const =0
 Visits a collision volume OBB to perform intersect test. More...
 
virtual bool intersectVisitor (const CollisionVolumeOctree &Octree) const =0
 Visits a collision volume Octree to perform intersect test. More...
 
virtual int getMaxDepth () const =0
 

Private Member Functions

virtual void debugDraw (const Vect &color, int depth) const =0
 Draws it collision volume. More...
 

Friends

class CollisionVolumeAttorney
 

Detailed Description

A collision volume base class.

Member Function Documentation

◆ computeData()

virtual void CollisionVolume::computeData ( Model *  pModel,
const Matrix &  worldMatrix 
)
pure virtual

Calculates the data.

Parameters
pModel[in,out] If non-null, the model.
worldMatrixThe world matrix.

Implemented in CollisionVolumeBoundingBox, CollisionVolumeOctree, CollisionVolumeOBB, CollisionVolumeBSphere, and CollisionVolumeAABB.

◆ debugDraw()

virtual void CollisionVolume::debugDraw ( const Vect &  color,
int  depth 
) const
privatepure virtual

Draws it collision volume.

Used for debuggin purposes. Depth value is used only for Octree collision value. All other collision volumes ignore it.

Parameters
colorthe color to render the collision volume.
depththe depth to render collision volume.

Implemented in CollisionVolumeOctree, CollisionVolumeOBB, CollisionVolumeBSphere, CollisionVolumeAABB, and CollisionVolumeBoundingBox.

◆ intersectAccept()

virtual bool CollisionVolume::intersectAccept ( const CollisionVolume collisionVolume) const
pure virtual

Accepts a collision volume to perform intersect test.

Uses Visitor Pattern. This is the first step of the process. Then calls on intersectVisitor().

Parameters
collisionVolumea collision volume.

Implemented in CollisionVolumeOctree, CollisionVolumeOBB, CollisionVolumeBSphere, and CollisionVolumeAABB.

◆ intersectVisitor() [1/4]

virtual bool CollisionVolume::intersectVisitor ( const CollisionVolumeAABB AABB) const
pure virtual

Visits a collision volume AABB to perform intersect test.

Uses Visitor Pattern. This is the second step of the process.

Parameters
AABBa collision volume AABB.

Implemented in CollisionVolumeOctree, CollisionVolumeOBB, CollisionVolumeBSphere, and CollisionVolumeAABB.

◆ intersectVisitor() [2/4]

virtual bool CollisionVolume::intersectVisitor ( const CollisionVolumeBSphere collisionBSphere) const
pure virtual

Visits a collision volume BSphere to perform intersect test.

Uses Visitor Pattern. This is the second step of the process.

Parameters
collisionBSpherea collision volume BSphere.

Implemented in CollisionVolumeOctree, CollisionVolumeOBB, CollisionVolumeBSphere, and CollisionVolumeAABB.

◆ intersectVisitor() [3/4]

virtual bool CollisionVolume::intersectVisitor ( const CollisionVolumeOBB OBB) const
pure virtual

Visits a collision volume OBB to perform intersect test.

Uses Visitor Pattern. This is the second step of the process.

Parameters
OBBa collision volume OBB.

Implemented in CollisionVolumeOctree, CollisionVolumeOBB, CollisionVolumeBSphere, and CollisionVolumeAABB.

◆ intersectVisitor() [4/4]

virtual bool CollisionVolume::intersectVisitor ( const CollisionVolumeOctree Octree) const
pure virtual

Visits a collision volume Octree to perform intersect test.

Uses Visitor Pattern. This is the second step of the process.

Parameters
Octreea collision volume Octree.

Implemented in CollisionVolumeOBB, CollisionVolumeBoundingBox, CollisionVolumeOctree, CollisionVolumeBSphere, and CollisionVolumeAABB.


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