Castor3D 0.16.0
Multiplatform 3D engine
Public Member Functions | Public Attributes | Protected Attributes | List of all members
castor3d::SceneCuller Class Referenceabstract

#include <SceneCuller.hpp>

Inheritance diagram for castor3d::SceneCuller:
Inheritance graph
[legend]
Collaboration diagram for castor3d::SceneCuller:
Collaboration graph
[legend]

Public Member Functions

C3D_API SceneCuller (Scene &scene, Camera *camera, std::optional< bool > isStatic=std::nullopt)
 
virtual C3D_API ~SceneCuller () noexcept
 
C3D_API void update (CpuUpdater &updater)
 
C3D_API void removeCulled (SubmeshRenderNode const &node)
 
C3D_API void removeCulled (BillboardRenderNode const &node)
 
C3D_API void resetCamera (Camera *camera)
 
ScenegetScene () const noexcept
 
bool hasCamera () const noexcept
 
bool hasNodes () const noexcept
 
Camera const & getCamera () const noexcept
 
CameragetCamera () noexcept
 
bool areAnyChanged () const noexcept
 
bool areCulledChanged () const noexcept
 
NodeArrayT< SubmeshRenderNode, CulledNodePtrT > const & getSubmeshes () const noexcept
 
NodeArrayT< BillboardRenderNode, CulledNodePtrT > const & getBillboards () const noexcept
 
RenderCounts const & getTotalCounts () const noexcept
 

Public Attributes

SceneCullerSignal onCompute
 
SceneCullerSubmeshSignal onSubmeshChanged
 
SceneCullerBillboardSignal onBillboardChanged
 
SceneCullerSubmeshSignal onSubmeshRemoved
 
SceneCullerBillboardSignal onBillboardRemoved
 

Protected Attributes

Cameram_camera
 
uint32_t m_index
 
bool m_first { true }
 
bool m_anyChanged { true }
 
bool m_culledChanged { true }
 
FramePassTimerUPtr m_timer
 
FramePassTimerUPtr m_timerDirty
 
FramePassTimerUPtr m_timerCompute
 
std::optional< bool > m_isStatic
 
RenderCounts m_total {}
 
NodeArrayT< SubmeshRenderNode, CulledNodePtrTm_culledSubmeshes
 
NodeArrayT< BillboardRenderNode, CulledNodePtrTm_culledBillboards
 

Constructor & Destructor Documentation

◆ SceneCuller()

C3D_API castor3d::SceneCuller::SceneCuller ( Scene & scene,
Camera * camera,
std::optional< bool > isStatic = std::nullopt )

◆ ~SceneCuller()

virtual C3D_API castor3d::SceneCuller::~SceneCuller ( )
virtualnoexcept

Member Function Documentation

◆ areAnyChanged()

bool castor3d::SceneCuller::areAnyChanged ( ) const
inlinenoexcept

References m_anyChanged.

◆ areCulledChanged()

bool castor3d::SceneCuller::areCulledChanged ( ) const
inlinenoexcept

References m_culledChanged.

◆ getBillboards()

NodeArrayT< BillboardRenderNode, CulledNodePtrT > const & castor3d::SceneCuller::getBillboards ( ) const
inlinenoexcept

References m_culledBillboards.

◆ getCamera() [1/2]

Camera const & castor3d::SceneCuller::getCamera ( ) const
inlinenoexcept

References CU_Require, hasCamera(), and m_camera.

Here is the call graph for this function:

◆ getCamera() [2/2]

Camera & castor3d::SceneCuller::getCamera ( )
inlinenoexcept

References CU_Require, hasCamera(), and m_camera.

Here is the call graph for this function:

◆ getScene()

Scene & castor3d::SceneCuller::getScene ( ) const
inlinenoexcept

name Getters.

◆ getSubmeshes()

NodeArrayT< SubmeshRenderNode, CulledNodePtrT > const & castor3d::SceneCuller::getSubmeshes ( ) const
inlinenoexcept

References m_culledSubmeshes.

◆ getTotalCounts()

RenderCounts const & castor3d::SceneCuller::getTotalCounts ( ) const
inlinenoexcept

References m_total.

◆ hasCamera()

bool castor3d::SceneCuller::hasCamera ( ) const
inlinenoexcept

References m_camera.

Referenced by getCamera(), and getCamera().

Here is the caller graph for this function:

◆ hasNodes()

bool castor3d::SceneCuller::hasNodes ( ) const
inlinenoexcept

◆ removeCulled() [1/2]

C3D_API void castor3d::SceneCuller::removeCulled ( BillboardRenderNode const & node)

◆ removeCulled() [2/2]

C3D_API void castor3d::SceneCuller::removeCulled ( SubmeshRenderNode const & node)

◆ resetCamera()

C3D_API void castor3d::SceneCuller::resetCamera ( Camera * camera)

◆ update()

C3D_API void castor3d::SceneCuller::update ( CpuUpdater & updater)

Member Data Documentation

◆ m_anyChanged

bool castor3d::SceneCuller::m_anyChanged { true }
protected

Referenced by areAnyChanged().

◆ m_camera

Camera* castor3d::SceneCuller::m_camera
protected

Referenced by getCamera(), getCamera(), and hasCamera().

◆ m_culledBillboards

NodeArrayT< BillboardRenderNode, CulledNodePtrT > castor3d::SceneCuller::m_culledBillboards
protected

Referenced by getBillboards(), and hasNodes().

◆ m_culledChanged

bool castor3d::SceneCuller::m_culledChanged { true }
protected

Referenced by areCulledChanged().

◆ m_culledSubmeshes

NodeArrayT< SubmeshRenderNode, CulledNodePtrT > castor3d::SceneCuller::m_culledSubmeshes
protected

Referenced by getSubmeshes(), and hasNodes().

◆ m_first

bool castor3d::SceneCuller::m_first { true }
protected

◆ m_index

uint32_t castor3d::SceneCuller::m_index
protected

◆ m_isStatic

std::optional< bool > castor3d::SceneCuller::m_isStatic
protected

◆ m_timer

FramePassTimerUPtr castor3d::SceneCuller::m_timer
protected

◆ m_timerCompute

FramePassTimerUPtr castor3d::SceneCuller::m_timerCompute
protected

◆ m_timerDirty

FramePassTimerUPtr castor3d::SceneCuller::m_timerDirty
protected

◆ m_total

RenderCounts castor3d::SceneCuller::m_total {}
protected

Referenced by getTotalCounts().

◆ onBillboardChanged

SceneCullerBillboardSignal castor3d::SceneCuller::onBillboardChanged
mutable

◆ onBillboardRemoved

SceneCullerBillboardSignal castor3d::SceneCuller::onBillboardRemoved
mutable

◆ onCompute

SceneCullerSignal castor3d::SceneCuller::onCompute
mutable

◆ onSubmeshChanged

SceneCullerSubmeshSignal castor3d::SceneCuller::onSubmeshChanged
mutable

◆ onSubmeshRemoved

SceneCullerSubmeshSignal castor3d::SceneCuller::onSubmeshRemoved
mutable

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