Irrlicht 3D Engine
 
Loading...
Searching...
No Matches
irr::scene::SViewFrustum Struct Reference

Defines the view frustum. That's the space visible by the camera. More...

#include <SViewFrustum.h>

Public Types

enum  VFPLANES {
  VF_FAR_PLANE = 0 , VF_NEAR_PLANE , VF_LEFT_PLANE , VF_RIGHT_PLANE ,
  VF_BOTTOM_PLANE , VF_TOP_PLANE , VF_PLANE_COUNT
}
 

Public Member Functions

 SViewFrustum ()
 Default Constructor.
 
 SViewFrustum (const core::matrix4 &mat)
 This constructor creates a view frustum based on a projection and/or view matrix.
 
 SViewFrustum (const SViewFrustum &other)
 Copy Constructor.
 
bool clipLine (core::line3d< f32 > &line) const
 clips a line to the view frustum.
 
const core::aabbox3d< f32 > & getBoundingBox () const
 returns a bounding box enclosing the whole view frustum
 
core::vector3df getFarLeftDown () const
 returns the point which is on the far left bottom corner inside the the view frustum.
 
core::vector3df getFarLeftUp () const
 returns the point which is on the far left upper corner inside the the view frustum.
 
core::vector3df getFarRightDown () const
 returns the point which is on the far right bottom corner inside the the view frustum.
 
core::vector3df getFarRightUp () const
 returns the point which is on the far right top corner inside the the view frustum.
 
core::vector3df getNearLeftDown () const
 returns the point which is on the near left bottom corner inside the the view frustum.
 
core::vector3df getNearLeftUp () const
 returns the point which is on the near left upper corner inside the the view frustum.
 
core::vector3df getNearRightDown () const
 returns the point which is on the near right bottom corner inside the the view frustum.
 
core::vector3df getNearRightUp () const
 returns the point which is on the near right top corner inside the the view frustum.
 
core::matrix4getTransform (video::E_TRANSFORMATION_STATE state)
 get the given state's matrix based on frustum E_TRANSFORMATION_STATE
 
const core::matrix4getTransform (video::E_TRANSFORMATION_STATE state) const
 get the given state's matrix based on frustum E_TRANSFORMATION_STATE
 
void recalculateBoundingBox ()
 recalculates the bounding box member based on the planes
 
void setFrom (const core::matrix4 &mat)
 This constructor creates a view frustum based on a projection and/or view matrix.
 
void transform (const core::matrix4 &mat)
 transforms the frustum by the matrix
 

Public Attributes

core::aabbox3d< f32boundingBox
 bounding box around the view frustum
 
core::vector3df cameraPosition
 the position of the camera
 
core::plane3d< f32planes [VF_PLANE_COUNT]
 all planes enclosing the view frustum.
 

Detailed Description

Defines the view frustum. That's the space visible by the camera.

The view frustum is enclosed by 6 planes. These six planes share eight points. A bounding box around these eight points is also stored in this structure.

Definition at line 25 of file SViewFrustum.h.

Member Enumeration Documentation

◆ VFPLANES

Enumerator
VF_FAR_PLANE 

Far plane of the frustum. That is the plane farest away from the eye.

VF_NEAR_PLANE 

Near plane of the frustum. That is the plane nearest to the eye.

VF_LEFT_PLANE 

Left plane of the frustum.

VF_RIGHT_PLANE 

Right plane of the frustum.

VF_BOTTOM_PLANE 

Bottom plane of the frustum.

VF_TOP_PLANE 

Top plane of the frustum.

VF_PLANE_COUNT 

Amount of planes enclosing the view frustum. Should be 6.

Definition at line 27 of file SViewFrustum.h.

Constructor & Destructor Documentation

◆ SViewFrustum() [1/3]

irr::scene::SViewFrustum::SViewFrustum ( )
inline

Default Constructor.

Definition at line 48 of file SViewFrustum.h.

◆ SViewFrustum() [2/3]

irr::scene::SViewFrustum::SViewFrustum ( const SViewFrustum other)
inline

Copy Constructor.

Copy constructor ViewFrustum

Definition at line 129 of file SViewFrustum.h.

References boundingBox, cameraPosition, planes, and VF_PLANE_COUNT.

◆ SViewFrustum() [3/3]

irr::scene::SViewFrustum::SViewFrustum ( const core::matrix4 mat)
inline

This constructor creates a view frustum based on a projection and/or view matrix.

Definition at line 142 of file SViewFrustum.h.

References setFrom().

Member Function Documentation

◆ clipLine()

bool irr::scene::SViewFrustum::clipLine ( core::line3d< f32 > &  line) const
inline

clips a line to the view frustum.

Clips a line to the frustum.

Returns
True if the line was clipped, false if not

Definition at line 344 of file SViewFrustum.h.

References irr::core::aabbox3d< T >::getInterpolated(), irr::core::plane3d< T >::getKnownIntersectionWithLine(), irr::core::ISREL3D_FRONT, planes, and VF_PLANE_COUNT.

◆ getBoundingBox()

const core::aabbox3d< f32 > & irr::scene::SViewFrustum::getBoundingBox ( ) const
inline

returns a bounding box enclosing the whole view frustum

Definition at line 238 of file SViewFrustum.h.

References boundingBox.

◆ getFarLeftDown()

core::vector3df irr::scene::SViewFrustum::getFarLeftDown ( ) const
inline

returns the point which is on the far left bottom corner inside the the view frustum.

Definition at line 168 of file SViewFrustum.h.

References irr::core::plane3d< T >::getIntersectionWithPlanes(), planes, VF_BOTTOM_PLANE, VF_FAR_PLANE, and VF_LEFT_PLANE.

Referenced by recalculateBoundingBox().

◆ getFarLeftUp()

core::vector3df irr::scene::SViewFrustum::getFarLeftUp ( ) const
inline

returns the point which is on the far left upper corner inside the the view frustum.

Definition at line 158 of file SViewFrustum.h.

References irr::core::plane3d< T >::getIntersectionWithPlanes(), planes, VF_FAR_PLANE, VF_LEFT_PLANE, and VF_TOP_PLANE.

Referenced by recalculateBoundingBox().

◆ getFarRightDown()

core::vector3df irr::scene::SViewFrustum::getFarRightDown ( ) const
inline

returns the point which is on the far right bottom corner inside the the view frustum.

Definition at line 188 of file SViewFrustum.h.

References irr::core::plane3d< T >::getIntersectionWithPlanes(), planes, VF_BOTTOM_PLANE, VF_FAR_PLANE, and VF_RIGHT_PLANE.

Referenced by recalculateBoundingBox().

◆ getFarRightUp()

core::vector3df irr::scene::SViewFrustum::getFarRightUp ( ) const
inline

returns the point which is on the far right top corner inside the the view frustum.

Definition at line 178 of file SViewFrustum.h.

References irr::core::plane3d< T >::getIntersectionWithPlanes(), planes, VF_FAR_PLANE, VF_RIGHT_PLANE, and VF_TOP_PLANE.

Referenced by recalculateBoundingBox().

◆ getNearLeftDown()

core::vector3df irr::scene::SViewFrustum::getNearLeftDown ( ) const
inline

returns the point which is on the near left bottom corner inside the the view frustum.

Definition at line 208 of file SViewFrustum.h.

References irr::core::plane3d< T >::getIntersectionWithPlanes(), planes, VF_BOTTOM_PLANE, VF_LEFT_PLANE, and VF_NEAR_PLANE.

◆ getNearLeftUp()

core::vector3df irr::scene::SViewFrustum::getNearLeftUp ( ) const
inline

returns the point which is on the near left upper corner inside the the view frustum.

Definition at line 198 of file SViewFrustum.h.

References irr::core::plane3d< T >::getIntersectionWithPlanes(), planes, VF_LEFT_PLANE, VF_NEAR_PLANE, and VF_TOP_PLANE.

◆ getNearRightDown()

core::vector3df irr::scene::SViewFrustum::getNearRightDown ( ) const
inline

returns the point which is on the near right bottom corner inside the the view frustum.

Definition at line 228 of file SViewFrustum.h.

References irr::core::plane3d< T >::getIntersectionWithPlanes(), planes, VF_BOTTOM_PLANE, VF_NEAR_PLANE, and VF_RIGHT_PLANE.

◆ getNearRightUp()

core::vector3df irr::scene::SViewFrustum::getNearRightUp ( ) const
inline

returns the point which is on the near right top corner inside the the view frustum.

Definition at line 218 of file SViewFrustum.h.

References irr::core::plane3d< T >::getIntersectionWithPlanes(), planes, VF_NEAR_PLANE, VF_RIGHT_PLANE, and VF_TOP_PLANE.

◆ getTransform() [1/2]

core::matrix4 & irr::scene::SViewFrustum::getTransform ( video::E_TRANSFORMATION_STATE  state)
inline

get the given state's matrix based on frustum E_TRANSFORMATION_STATE

View Frustum depends on Projection & View Matrix

Definition at line 310 of file SViewFrustum.h.

References irr::video::ETS_PROJECTION, and irr::video::ETS_VIEW.

◆ getTransform() [2/2]

const core::matrix4 & irr::scene::SViewFrustum::getTransform ( video::E_TRANSFORMATION_STATE  state) const
inline

get the given state's matrix based on frustum E_TRANSFORMATION_STATE

View Frustum depends on Projection & View Matrix

Definition at line 328 of file SViewFrustum.h.

References irr::video::ETS_PROJECTION, and irr::video::ETS_VIEW.

◆ recalculateBoundingBox()

void irr::scene::SViewFrustum::recalculateBoundingBox ( )
inline

recalculates the bounding box member based on the planes

Definition at line 243 of file SViewFrustum.h.

References irr::core::aabbox3d< T >::addInternalPoint(), boundingBox, cameraPosition, getFarLeftDown(), getFarLeftUp(), getFarRightDown(), getFarRightUp(), and irr::core::aabbox3d< T >::reset().

Referenced by setFrom(), and transform().

◆ setFrom()

void irr::scene::SViewFrustum::setFrom ( const core::matrix4 mat)
inline

This constructor creates a view frustum based on a projection and/or view matrix.

This constructor creates a view frustum based on a projection and/or view matrix.

Definition at line 255 of file SViewFrustum.h.

References irr::core::plane3d< T >::D, irr::core::plane3d< T >::Normal, planes, recalculateBoundingBox(), irr::core::reciprocal_squareroot(), VF_BOTTOM_PLANE, VF_FAR_PLANE, VF_LEFT_PLANE, VF_NEAR_PLANE, VF_PLANE_COUNT, VF_RIGHT_PLANE, VF_TOP_PLANE, irr::core::vector3d< T >::X, irr::core::vector3d< T >::Y, and irr::core::vector3d< T >::Z.

Referenced by SViewFrustum().

◆ transform()

void irr::scene::SViewFrustum::transform ( const core::matrix4 mat)
inline

transforms the frustum by the matrix

Parameters
matMatrix by which the view frustum is transformed.

Definition at line 148 of file SViewFrustum.h.

References cameraPosition, planes, recalculateBoundingBox(), irr::core::CMatrix4< T >::transformPlane(), irr::core::CMatrix4< T >::transformVect(), and VF_PLANE_COUNT.

Member Data Documentation

◆ boundingBox

core::aabbox3d<f32> irr::scene::SViewFrustum::boundingBox

bounding box around the view frustum

Definition at line 110 of file SViewFrustum.h.

Referenced by SViewFrustum(), getBoundingBox(), and recalculateBoundingBox().

◆ cameraPosition

core::vector3df irr::scene::SViewFrustum::cameraPosition

the position of the camera

Definition at line 104 of file SViewFrustum.h.

Referenced by SViewFrustum(), recalculateBoundingBox(), and transform().

◆ planes

core::plane3d<f32> irr::scene::SViewFrustum::planes[VF_PLANE_COUNT]

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