FdkBaseLib 2.1.1
All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
fdk::Frustum< T > Class Template Reference

A view frustum class defined by six planes. More...

#include <Frustum.h>

Public Types

enum  Plane {
  eNear = 0 , eFar , eLeft , eRight ,
  eTop , eBottom , eNumPlanes
}
 Frustum planes.
 
enum  { eNumCorners = 8 }
 
enum class  Visibility { NotVisible , FullVisible , PartialVisible }
 Frustum visibility result. More...
 

Public Member Functions

 Frustum ()=default
 Default constructor.
 
 Frustum (const Mat4< T > &projMatrix, const Box2< T > &rect, const Box2< T > &viewport, T near=0.0, T far=1.0)
 Construct a frustum from a projection matrix and viewport.
 
 Frustum (const Mat4< T > &m, T near, T far, T focalLength, T filmWidth, T filmHeight)
 Construct a frustum from camera parameters.
 
const fdk::Plane< T > & getPlane (Plane plane) const
 Get a frustum plane.
 
const fdk::Plane< T > * planes () const
 Return the six planes defining the frustum.
 
const Vec3< T > * corners () const
 Return the eight corners of the frustum.
 
bool containsPoint (const Vec3< T > &point) const
 Test the visibility of a point.
 
bool isBoxVisible (const fdk::Box3< T > &b) const
 Test the visibility of a Box.
 
Visibility arePointsVisible (const Vec3< T > *points, size_t count) const
 Test the visibility of a polygon defined by a list of coplanar vertices.
 
Frustum transform (const Mat4< T > &m) const
 Transform the plane by matrix m.
 

Detailed Description

template<class T>
class fdk::Frustum< T >

A view frustum class defined by six planes.

Member Enumeration Documentation

◆ Visibility

template<class T >
enum class fdk::Frustum::Visibility
strong

Frustum visibility result.

Enumerator
NotVisible 

The object is completely outside the view frustum.

FullVisible 

The object is completely inside the view frustum.

PartialVisible 

Part of the object is inside the view frustum.



©2024 The Foundry Visionmongers, Ltd. All Rights Reserved.
www.foundry.com