Wraith  0.1.5
Basic 3D game engine in C++
CollisionVolumeOctree Class Reference
Inheritance diagram for CollisionVolumeOctree:
Inheritance graph
Collaboration diagram for CollisionVolumeOctree:
Collaboration graph

Public Member Functions

 CollisionVolumeOctree (const CollisionVolumeOctree &)=default
 
CollisionVolumeOctree & operator= (const CollisionVolumeOctree &)=default
 
 CollisionVolumeOctree (CollisionVolumeOctree &&)=default
 
CollisionVolumeOctree & operator= (CollisionVolumeOctree &&)=default
 
 CollisionVolumeOctree (Model *pModel, int maxDepth)
 
virtual void computeData (Model *pModel, const Matrix &worldMatrix) override
 Calculates the data. More...
 
virtual bool intersectAccept (const CollisionVolume &collisionVolume) const override
 Accepts a collision volume to perform intersect test. More...
 
virtual bool intersectVisitor (const CollisionVolumeBSphere &collisionBSphere) const override
 Visits a collision volume BSphere to perform intersect test. More...
 
virtual bool intersectVisitor (const CollisionVolumeAABB &AABB) const override
 Visits a collision volume AABB to perform intersect test. More...
 
virtual bool intersectVisitor (const CollisionVolumeOBB &OBB) const override
 Visits a collision volume OBB to perform intersect test. More...
 
virtual bool intersectVisitor (const CollisionVolumeOctree &) const override
 Visits a collision volume Octree to perform intersect test. More...
 
virtual void debugDraw (const Vect &color, int depth) const override
 Draws it collision volume. More...
 
void debugDraw (int depth, const Vect &color) const
 
const OctreeNode * getRoot () const
 
virtual int getMaxDepth () const override
 
- Public Member Functions inherited from CollisionVolume
 CollisionVolume (const CollisionVolume &)=default
 
CollisionVolume & operator= (const CollisionVolume &)=default
 
 CollisionVolume (CollisionVolume &&)=default
 
CollisionVolume & operator= (CollisionVolume &&)=default
 

Private Types

typedef std::vector< OctreeNode * > OctreeNodeCollection
 

Private Member Functions

OctreeNodeCollection getAllNodes () const
 
void addNodes (OctreeNode *pNode, OctreeNodeCollection &nodes) const
 
void drawAt (int depth, const Vect &color, const OctreeNode *pNode) const
 

Private Attributes

OctreeNode * _pRoot
 
int _maxDepth
 

Member Function Documentation

◆ computeData()

void CollisionVolumeOctree::computeData ( Model *  pModel,
const Matrix &  worldMatrix 
)
overridevirtual

Calculates the data.

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

Implements CollisionVolume.

◆ debugDraw()

void CollisionVolumeOctree::debugDraw ( const Vect &  color,
int  depth 
) const
overridevirtual

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.

Implements CollisionVolume.

◆ intersectAccept()

bool CollisionVolumeOctree::intersectAccept ( const CollisionVolume &  collisionVolume) const
overridevirtual

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.

Implements CollisionVolume.

◆ intersectVisitor() [1/4]

bool CollisionVolumeOctree::intersectVisitor ( const CollisionVolumeAABB &  AABB) const
overridevirtual

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.

Implements CollisionVolume.

◆ intersectVisitor() [2/4]

bool CollisionVolumeOctree::intersectVisitor ( const CollisionVolumeBSphere &  collisionBSphere) const
overridevirtual

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.

Implements CollisionVolume.

◆ intersectVisitor() [3/4]

bool CollisionVolumeOctree::intersectVisitor ( const CollisionVolumeOBB &  OBB) const
overridevirtual

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.

Implements CollisionVolume.

◆ intersectVisitor() [4/4]

bool CollisionVolumeOctree::intersectVisitor ( const CollisionVolumeOctree &  Octree) const
overridevirtual

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.

Implements CollisionVolume.


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