Wraith  0.1.5
Basic 3D game engine in C++
CollisionVolumeAABB Class Reference

A Collision Volume AABB. More...

#include <CollisionVolumeAABB.h>

Inheritance diagram for CollisionVolumeAABB:
Inheritance graph
Collaboration diagram for CollisionVolumeAABB:
Collaboration graph

Public Member Functions

 CollisionVolumeAABB (const CollisionVolumeAABB &)=default
 
CollisionVolumeAABBoperator= (const CollisionVolumeAABB &)=default
 
 CollisionVolumeAABB (CollisionVolumeAABB &&)=default
 
CollisionVolumeAABBoperator= (CollisionVolumeAABB &&)=default
 
virtual void computeData (Model *pModel, const Matrix &worldMatrix) override
 Calculates the data for AABB. In this case the Max and Min Vertices. More...
 
void computeData (const CollisionVolumeBSphere &BSphere)
 Calculates the data for AABB. In this case the Max and Min Vertices. More...
 
virtual bool intersectAccept (const CollisionVolume &) const override
 Accepts a collision volume to perform intersect test. More...
 
virtual bool intersectVisitor (const CollisionVolumeBSphere &) const override
 Visits a collision volume BSphere to perform intersect test. More...
 
virtual bool intersectVisitor (const CollisionVolumeAABB &) const override
 Visits a collision volume AABB to perform intersect test. More...
 
virtual bool intersectVisitor (const CollisionVolumeOBB &) 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...
 
void setMinMaxWorldVertex (const Vect &minWorldVertex, const Vect &maxWorldVertex)
 Sets the minimum and maximum vertex in world space. More...
 
const Vect & getMinWorldVertex () const
 Gets the minimum vertex in world space. More...
 
const Vect & getMaxWorldVertex () const
 Gets the maximum vertex in world space. More...
 
const Matrix & getWorldMatrix () const
 Gets the world matrix of AABB. More...
 
const Matrix & getInverseWorldMatrix () const
 Gets the inverse world matrix of AABB. More...
 
const Vect & getMinLocalVertex () const
 Gets the minimum vertex in local space. More...
 
const Vect & getMaxLocalVertex () const
 Gets the maximum vertex in local space. More...
 
const Vect & getLocalHalfDiagonal () const
 Gets the half diagonal of AABB in local space. More...
 
const Vect & getWorldCenter () const
 Gets the center position of AABB in world space. More...
 
float getScalingFactorSquared () const
 Gets scaling factor sqaured of AABB. More...
 
void computeData (const CollisionVolumeOBB &OBB)
 Calculates the data for AABB. In this case the Max and Min Vertices. More...
 
void computeData (const Triangle &triangle)
 Calculates the data for AABB. In this case the Max and Min Vertices. More...
 
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 Member Functions

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

Private Attributes

Vect _minWorldVertex
 
Vect _maxWorldVertex
 
Matrix _worldMatrix
 
Matrix _inverseWorldMatrix
 
Vect _minLocalVertex
 
Vect _maxLocalVertex
 
Vect _localHalfDiagonal
 
Vect _worldCenter
 
float _scalingFactorSqaured = 0
 

Detailed Description

A Collision Volume AABB.

inherits from CollisionVolume.

Member Function Documentation

◆ computeData() [1/4]

void CollisionVolumeAABB::computeData ( const CollisionVolumeBSphere BSphere)

Calculates the data for AABB. In this case the Max and Min Vertices.

Uses a BSphere.

Parameters
bSphereA BSphere.

◆ computeData() [2/4]

void CollisionVolumeAABB::computeData ( const CollisionVolumeOBB OBB)

Calculates the data for AABB. In this case the Max and Min Vertices.

Uses a OBB.

Parameters
OBBA OBB.

◆ computeData() [3/4]

void CollisionVolumeAABB::computeData ( const Triangle triangle)

Calculates the data for AABB. In this case the Max and Min Vertices.

Uses a Triangle.

Parameters
triangleA Triangle.

◆ computeData() [4/4]

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

Calculates the data for AABB. In this case the Max and Min Vertices.

Parameters
pModelthe pointer to a model.
worldMatrixThe world matrix.

Implements CollisionVolume.

◆ debugDraw()

void CollisionVolumeAABB::debugDraw ( const Vect &  color,
int  depth 
) const
overrideprivatevirtual

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.

◆ getInverseWorldMatrix()

const Matrix & CollisionVolumeAABB::getInverseWorldMatrix ( ) const

Gets the inverse world matrix of AABB.

Returns
The world matrix.

◆ getLocalHalfDiagonal()

const Vect & CollisionVolumeAABB::getLocalHalfDiagonal ( ) const

Gets the half diagonal of AABB in local space.

Returns
The half diagonal.

◆ getMaxLocalVertex()

const Vect & CollisionVolumeAABB::getMaxLocalVertex ( ) const

Gets the maximum vertex in local space.

Returns
The maximum vertex.

◆ getMaxWorldVertex()

const Vect & CollisionVolumeAABB::getMaxWorldVertex ( ) const

Gets the maximum vertex in world space.

Returns
The maximum vertex.

◆ getMinLocalVertex()

const Vect & CollisionVolumeAABB::getMinLocalVertex ( ) const

Gets the minimum vertex in local space.

Returns
The minimum vertex.

◆ getMinWorldVertex()

const Vect & CollisionVolumeAABB::getMinWorldVertex ( ) const

Gets the minimum vertex in world space.

Returns
The minimum vertex.

◆ getScalingFactorSquared()

float CollisionVolumeAABB::getScalingFactorSquared ( ) const

Gets scaling factor sqaured of AABB.

Returns
The scaling factor squared.

◆ getWorldCenter()

const Vect & CollisionVolumeAABB::getWorldCenter ( ) const

Gets the center position of AABB in world space.

Returns
The center.

◆ getWorldMatrix()

const Matrix & CollisionVolumeAABB::getWorldMatrix ( ) const

Gets the world matrix of AABB.

Returns
The world matrix.

◆ intersectAccept()

bool CollisionVolumeAABB::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 CollisionVolumeAABB::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 CollisionVolumeAABB::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 CollisionVolumeAABB::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 CollisionVolumeAABB::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.

◆ setMinMaxWorldVertex()

void CollisionVolumeAABB::setMinMaxWorldVertex ( const Vect &  minWorldVertex,
const Vect &  maxWorldVertex 
)

Sets the minimum and maximum vertex in world space.

Parameters
minWorldVertexThe min world vertex.
maxWorldVertexThe max world vertex.

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