ZeroZero Game Engine  v0.0
A 3D game engine using Vulkan & Jolt
Classes | Public Member Functions | Public Attributes | List of all members
Frustum Struct Reference

Detailed Description

A camera or light frustum

Classes

struct  Plane
 

Public Member Functions

 Frustum (const shared_ptr< Node > &node, float fovY, float zNear, float zFar)
 
 Frustum (const shared_ptr< Node > &node, const vec3 &position, float fovY, float zNear, float zFar)
 
 Frustum (const vec3 &position, const vec3 &front, const vec3 &right, const vec3 &up, float fovY, float zNear, float zFar)
 
bool isOnFrustum (const shared_ptr< MeshInstance > &meshInstance) const
 

Public Attributes

Plane farFace
 Far plane.
 
Plane nearFace
 Near plane.
 
Plane leftFace
 Left plane.
 
Plane rightFace
 Right plane.
 
Plane topFace
 Top plane.
 
Plane bottomFace
 Bottom plane.
 

Constructor & Destructor Documentation

Frustum ( const shared_ptr< Node > &  node,
float  fovY,
float  zNear,
float  zFar 
)

Creates a frustum

Parameters
nodeCamera or Light
fovYField of view in degrees
zNearNear clipping distance
zFarFar clipping distance
Frustum ( const shared_ptr< Node > &  node,
const vec3 &  position,
float  fovY,
float  zNear,
float  zFar 
)

Creates a frustum

Parameters
nodeCamera or Light
positionNode position to use instead of the real node position
fovYField of view in degrees
zNearNear clipping distance
zFarFar clipping distance
Frustum ( const vec3 &  position,
const vec3 &  front,
const vec3 &  right,
const vec3 &  up,
float  fovY,
float  zNear,
float  zFar 
)

Creates a frustum

Parameters
positionNode position
frontFront vector
rightRight vector
upUp vector
fovYField of view in degrees
zNearNear clipping distance
zFarFar clipping distance

Member Function Documentation

bool isOnFrustum ( const shared_ptr< MeshInstance > &  meshInstance) const

Returns true if the MeshInstance is in the frustum