Untold Engine  Beta v0.0.16
docs
U4DEngine::U4DBoundingVolume Class Reference

The U4DBoundingVolume class represents bounding volume entities. More...

Inherits U4DEngine::U4DVisibleEntity.

Inherited by U4DEngine::U4DBoundingAABB, U4DEngine::U4DBoundingConvex, U4DEngine::U4DBoundingOBB, and U4DEngine::U4DBoundingSphere.

Public Member Functions

 U4DBoundingVolume ()
 Constructor of class.
 
 ~U4DBoundingVolume ()
 Destructor of class.
 
 U4DBoundingVolume (const U4DBoundingVolume &value)
 Copy constructor.
 
U4DBoundingVolumeoperator= (const U4DBoundingVolume &value)
 Copy constructor.
 
virtual void computeBoundingVolume (float uRadius, int uRings, int uSectors)
 Method which computes a spherical bounding volume. More...
 
virtual void computeBoundingVolume (U4DPoint3n &uMin, U4DPoint3n &uMax)
 Method which computes a AABB bounding volume. More...
 
virtual void updateBoundingVolume (U4DPoint3n &uMin, U4DPoint3n &uMax)
 Method which updates a AABB bounding volume. More...
 
virtual void computeBoundingVolume (U4DVector3n &uHalfwidth)
 Method which computes a OBB bounding volume. More...
 
virtual void update (double dt)
 Method which updates the state of the entity. More...
 
virtual void setConvexHullVertices (CONVEXHULL &uConvexHull)
 Method which sets the convex-hull vertices into a container. More...
 
virtual std::vector< U4DVector3ngetConvexHullVertices ()
 Method which returns the convex-hull vertices. More...
 
virtual U4DPoint3n getSupportPointInDirection (U4DVector3n &uDirection)
 Method which gets the support points in a particular direction. More...
 
void loadRenderingInformation ()
 Method which loads the attribute information needed for rendering.
 
void updateRenderingInformation ()
 Method which updates the attribute information needed for rendering.
 
virtual void setRadius (float uRadius)
 Method which sets the radius for the spherical bounding volume. More...
 
virtual float getRadius ()
 Method which returns the radius of the spherical bounding volume. More...
 
virtual U4DPoint3n getMaxBoundaryPoint ()
 Method which returns the maximum boundary point. More...
 
virtual U4DPoint3n getMinBoundaryPoint ()
 Method which returns the minimum boundary point. More...
 
virtual U4DSpheregetSphere ()
 Method which returns the mathematical sphere entity of the spherical boundary volume. More...
 
void render (id< MTLRenderCommandEncoder > uRenderEncoder)
 
void setLineColor (U4DVector4n &lineColor)
 
void setVisibility (bool uValue)
 set if the engine should render the boundary volume More...
 
bool getVisibility ()
 get if the engine should render the boundary volume
 
- Public Member Functions inherited from U4DEngine::U4DVisibleEntity
 U4DVisibleEntity ()
 Constructor for the class.
 
virtual ~U4DVisibleEntity ()
 Destructor for the class.
 
 U4DVisibleEntity (const U4DVisibleEntity &value)
 Copy constructor for the visible entity.
 
U4DVisibleEntityoperator= (const U4DVisibleEntity &value)
 Copy constructor for the visible entity. More...
 
virtual void updateAllUniforms ()
 
void loadRenderingInformation ()
 Method which loads all rendering information for the entiy.
 
std::string getFragmentShader ()
 get the name of the fragment shader More...
 
U4DRenderEntitygetRenderEntity ()
 
void setPipelineForPass (std::string uPipelineName, int uRenderPassKey)
 
void setPipeline (std::string uPipelineName)
 sets the pipeline for the default final pass More...
 
- Public Member Functions inherited from U4DEngine::U4DEntity
 U4DEntity ()
 Entity Constructor. It creates the entity with the local orientation set to zero and local position set to the origin. The forwad vector is set to (0.0,0.0,-1.0). Parent and Next pointer set to null.
 
 ~U4DEntity ()
 Entity Destructor.
 
 U4DEntity (const U4DEntity &value)
 Entity Copy Constructor.
 
U4DEntityoperator= (const U4DEntity &value)
 Entity Copy Constructor. More...
 
void setName (std::string uName)
 Method which sets the name of the Entity. More...
 
std::string getName ()
 Method which returns the name of the Entity. More...
 
void setEntityType (ENTITYTYPE uType)
 Method which sets the type of the Entity. More...
 
ENTITYTYPE getEntityType ()
 Method which returns the type of the Entity. More...
 
void setLocalSpace (U4DDualQuaternion &uLocalSpace)
 Method which sets the local space of the Entity. More...
 
void setLocalSpace (U4DMatrix4n &uMatrix)
 Method which sets the local space of the Entity. More...
 
U4DDualQuaternion getLocalSpace ()
 
U4DDualQuaternion getAbsoluteSpace ()
 Method which returns the absolute space of the Entity. More...
 
U4DQuaternion getLocalSpaceOrientation ()
 Method which returns the local orientation space of the Entity. More...
 
U4DQuaternion getLocalSpacePosition ()
 Method which returns the local position space of the Entity. More...
 
U4DQuaternion getAbsoluteSpaceOrientation ()
 Method which returns the absolute orientation space of the Entity. More...
 
U4DQuaternion getAbsoluteSpacePosition ()
 Method which returns the absolute position space of the Entity. More...
 
void setLocalSpaceOrientation (U4DQuaternion &uOrientation)
 Method which sets the local space orientation of the Entity. More...
 
void setLocalSpacePosition (U4DQuaternion &uPosition)
 Method which sets the local space position of the Entity. More...
 
U4DVector3n getLocalOrientation ()
 Method which returns the Local orientation of the Entity. More...
 
U4DVector3n getLocalPosition ()
 Method which returns the local position of the Entity. More...
 
U4DVector3n getAbsoluteOrientation ()
 Method which returns the absolute orientation of the Entity. More...
 
U4DVector3n getAbsolutePosition ()
 Method which returns the absolute position of the Entity. More...
 
U4DVector3n getEntityForwardVector ()
 Method which returns the forwad vector of the Entity. More...
 
void setEntityForwardVector (U4DVector3n &uForwardVector)
 Method which sets the forward vectof of the Entity. The default value is (0.0,0.0,-1.0) More...
 
U4DMatrix3n getAbsoluteMatrixOrientation ()
 Method which returns the absolute orientation of the Entity. More...
 
U4DMatrix3n getLocalMatrixOrientation ()
 Method which returns the local orientation of the Entity. More...
 
void translateTo (U4DVector3n &translation)
 Method which translates entity to a new position. More...
 
void translateTo (float x, float y, float z)
 Method which translates entity to a new position. More...
 
void translateTo (U4DVector2n &translation)
 Method which translates entity to a new position. More...
 
void translateBy (float x, float y, float z)
 Method which translates entity by certain amount. More...
 
void translateBy (U4DVector3n &translation)
 Method which translates entity by a certain amount. More...
 
void rotateTo (U4DQuaternion &rotation)
 Method which rotates entity to a new orientation. More...
 
void rotateBy (U4DQuaternion &rotation)
 Method which rotates entity by a certain amount. More...
 
void rotateTo (float angle, U4DVector3n &axis)
 Method which rotates entity to a new orientation. More...
 
void rotateBy (float angle, U4DVector3n &axis)
 Method which rotates entity by certain amount. More...
 
void rotateTo (float angleX, float angleY, float angleZ)
 Method which rotates entity to a new orientation. More...
 
void rotateBy (float angleX, float angleY, float angleZ)
 Method which rotates entity by a certain amount. More...
 
void rotateAboutAxis (float angle, U4DVector3n &axisOrientation, U4DVector3n &axisPosition)
 Method which rotates entity about an axis. More...
 
void rotateAboutAxis (U4DQuaternion &uOrientation, U4DVector3n &axisPosition)
 Method which rotates entity about an axis. More...
 
virtual void viewInDirection (U4DVector3n &uDestinationPoint)
 Method which sets the view direction of the entity. More...
 
virtual U4DVector3n getViewInDirection ()
 Method which rotates the view direction of the entiy. More...
 
void setZDepth (int uZDepth)
 Loads all rendering information for the entiy ‍/ virtual void loadRenderingInformation(){};. More...
 
int getZDepth ()
 Gets the z-depth value used for rendering ordering. More...
 
virtual bool changeState (INPUTELEMENTACTION uInputAction, U4DVector2n uPosition)
 
- Public Member Functions inherited from U4DEngine::U4DEntityNode< U4DEntity >
 U4DEntityNode ()
 Constructor for the class.
 
 U4DEntityNode (std::string uNodeName)
 
 ~U4DEntityNode ()
 Destructor for the class.
 
void addChild (U4DEntity *uChild)
 Method which adds a child node to a scenegraph. More...
 
void addChild (U4DEntity *uChild, U4DEntity *uNext)
 
void addChild (U4DEntity *uChild, int uZDepth)
 Method which adds a child entity to a scenegraph at a particular location. More...
 
void removeChild (U4DEntity *uChild)
 Method which removes a child node from the scenegraph. More...
 
void changeLastDescendant (U4DEntity *uNewLastDescendant)
 Method which changes the node's last descendant in the scenegraph. More...
 
U4DEntitygetFirstChild ()
 Method which returns the node's first child in the scenegraph. More...
 
U4DEntitygetLastChild ()
 Method which returns the node's last child in the scenegraph. More...
 
U4DEntitygetNextSibling ()
 Method which returns the node's next sibling in the scenegraph. More...
 
U4DEntitygetPrevSibling ()
 Method which returns the node's previous sibling in the scenegraph. More...
 
U4DEntityprevInPreOrderTraversal ()
 Method which returns the node's previous sibling in pre-order traversal order. More...
 
U4DEntitynextInPreOrderTraversal ()
 Method which returns the node's next pointer in pre-order traversal order. More...
 
bool isLeaf ()
 Method which returns true if the node represents a leaf node in the scenegraph. More...
 
bool isRoot ()
 Method which returns true if the node represents a root node in the scenegraph. More...
 
U4DEntitygetParent ()
 Gets the parent to the entity. More...
 
U4DEntitygetRootParent ()
 Gets the root parent (top parent in the scenegraph) of the entity. More...
 
U4DEntitysearchChild (std::string uName)
 

Public Attributes

U4DVertexData bodyCoordinates
 Object which contains attribute data such as vertices.
 
- Public Attributes inherited from U4DEngine::U4DVisibleEntity
U4DRenderEntityrenderEntity
 pointer to the rendering entity
 
- Public Attributes inherited from U4DEngine::U4DEntity
U4DDualQuaternion localSpace
 Local Space of the entity.
 
U4DDualQuaternion absoluteSpace
 Absolute Space of the entity.
 
U4DTransformationtransformation
 U4DTransformation object pointer in charge of translating/rotating the entity.
 
U4DVector3n entityForwardVector
 Forward vector of the entity. This is used to compute the view-direction vector.
 
int zDepth
 z-depth used for rendering ordering
 
- Public Attributes inherited from U4DEngine::U4DEntityNode< U4DEntity >
U4DEntityparent
 Tree parent pointer.
 
U4DEntityprevSibling
 Tree previous sibling pointer.
 
U4DEntitynext
 Tree next pointer.
 
U4DEntitylastDescendant
 Tree last descendant pointer.
 

Additional Inherited Members

- Protected Attributes inherited from U4DEngine::U4DEntity
U4DVector3n localOrientation
 Entity local orientation.
 
U4DVector3n localPosition
 Entity local position.
 
U4DVector3n absoluteOrientation
 Entity absolute orientation.
 
U4DVector3n absolutePosition
 Entity absolute position.
 

Detailed Description

The U4DBoundingVolume class represents bounding volume entities.

Member Function Documentation

◆ computeBoundingVolume() [1/3]

virtual void U4DEngine::U4DBoundingVolume::computeBoundingVolume ( float  uRadius,
int  uRings,
int  uSectors 
)
inlinevirtual

Method which computes a spherical bounding volume.

Parameters
uRadiusRadius of sphere
uRingsNumber of rings used for rendering
uSectorsNumber of sectors used for rendering

Reimplemented in U4DEngine::U4DBoundingSphere.

◆ computeBoundingVolume() [2/3]

virtual void U4DEngine::U4DBoundingVolume::computeBoundingVolume ( U4DPoint3n uMin,
U4DPoint3n uMax 
)
inlinevirtual

Method which computes a AABB bounding volume.

Parameters
uMin3D point representing the minimum coordinate point
uMax3D point representing the maximum coordinate point

Reimplemented in U4DEngine::U4DBoundingAABB.

◆ computeBoundingVolume() [3/3]

virtual void U4DEngine::U4DBoundingVolume::computeBoundingVolume ( U4DVector3n uHalfwidth)
inlinevirtual

Method which computes a OBB bounding volume.

Parameters
uHalfwidth3D vector representing the positive halfwidth of the bounding volume. Halfwidth extends along each axis (rx,ry,rz)

Reimplemented in U4DEngine::U4DBoundingOBB.

◆ getConvexHullVertices()

virtual std::vector<U4DVector3n> U4DEngine::U4DBoundingVolume::getConvexHullVertices ( )
inlinevirtual

Method which returns the convex-hull vertices.

Returns
Returns the convex-hull vertices

Reimplemented in U4DEngine::U4DBoundingConvex.

◆ getMaxBoundaryPoint()

virtual U4DPoint3n U4DEngine::U4DBoundingVolume::getMaxBoundaryPoint ( )
inlinevirtual

Method which returns the maximum boundary point.

Returns
3D point representing the maximum boundary point

Reimplemented in U4DEngine::U4DBoundingSphere, and U4DEngine::U4DBoundingAABB.

◆ getMinBoundaryPoint()

virtual U4DPoint3n U4DEngine::U4DBoundingVolume::getMinBoundaryPoint ( )
inlinevirtual

Method which returns the minimum boundary point.

Returns
3D point representing the minimum boundary point

Reimplemented in U4DEngine::U4DBoundingSphere, and U4DEngine::U4DBoundingAABB.

◆ getRadius()

virtual float U4DEngine::U4DBoundingVolume::getRadius ( )
inlinevirtual

Method which returns the radius of the spherical bounding volume.

Returns
Returns the radius of the sphere

Reimplemented in U4DEngine::U4DBoundingSphere.

◆ getSphere()

virtual U4DSphere& U4DEngine::U4DBoundingVolume::getSphere ( )
inlinevirtual

Method which returns the mathematical sphere entity of the spherical boundary volume.

Returns
Returns the mathematical sphere entity

Reimplemented in U4DEngine::U4DBoundingSphere.

◆ getSupportPointInDirection()

virtual U4DPoint3n U4DEngine::U4DBoundingVolume::getSupportPointInDirection ( U4DVector3n uDirection)
inlinevirtual

Method which gets the support points in a particular direction.

Parameters
uDirectiondirection to compute the support points
Returns
Returns 3D points representing the support point in a particular direction

Reimplemented in U4DEngine::U4DBoundingConvex.

◆ setConvexHullVertices()

virtual void U4DEngine::U4DBoundingVolume::setConvexHullVertices ( CONVEXHULL uConvexHull)
inlinevirtual

Method which sets the convex-hull vertices into a container.

Parameters
uConvexHullconvex-hull object containing the convex-hull vertices

Reimplemented in U4DEngine::U4DBoundingConvex.

◆ setRadius()

virtual void U4DEngine::U4DBoundingVolume::setRadius ( float  uRadius)
inlinevirtual

Method which sets the radius for the spherical bounding volume.

Parameters
uRadiusRadius of sphere

Reimplemented in U4DEngine::U4DBoundingSphere.

◆ setVisibility()

void U4DEngine::U4DBoundingVolume::setVisibility ( bool  uValue)

set if the engine should render the boundary volume

Parameters
uValuetrue to render.

◆ update()

virtual void U4DEngine::U4DBoundingVolume::update ( double  dt)
inlinevirtual

Method which updates the state of the entity.

Parameters
dtTime-step value

Reimplemented from U4DEngine::U4DVisibleEntity.

◆ updateBoundingVolume()

virtual void U4DEngine::U4DBoundingVolume::updateBoundingVolume ( U4DPoint3n uMin,
U4DPoint3n uMax 
)
inlinevirtual

Method which updates a AABB bounding volume.

Parameters
uMin3D point representing the minimum coordinate point
uMax3D point representing the maximum coordinate point

Reimplemented in U4DEngine::U4DBoundingAABB.