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
 
CollisionVolumeOctreeoperator= (const CollisionVolumeOctree &)=default
 
 CollisionVolumeOctree (CollisionVolumeOctree &&)=default
 
CollisionVolumeOctreeoperator= (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 OctreeNodegetRoot () const
 
virtual int getMaxDepth () const override
 
- Public Member Functions inherited from CollisionVolume
 CollisionVolume (const CollisionVolume &)=default
 
CollisionVolumeoperator= (const CollisionVolume &)=default
 
 CollisionVolume (CollisionVolume &&)=default
 
CollisionVolumeoperator= (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: