![]() |
Murl Engine API
Version 2018.3
|
The ICuller graph node interface. More...
#include <murl_graph_i_culler.h>
The ICuller graph node interface.
This interface represents a node that can be used to cull away any objects that cannot be seen through a specific camera or heard via a specific listener, mainly to speed up audio/video rendering.
Cullers are always attached to a given Graph::ISubject node (a camera or listener), retrieving that subject's position, orientation and other parameters such as viewing frustum etc., to determine its actual perception area. In addition, cullers may rely on extended information (such as BSP visibility information optionally contained within a Resource::IMesh object for a Graph::IResourceMeshCuller node) to perform more precise object culling.
See Output-States, Slots und Units for an overview of state handling during scene graph traversal.
See Graph::ICullerState for activating a culler during traversal.
Public Types | |
enum | IntersectionFlags { INTERSECTION_FLAG_VOLUME, INTERSECTION_FLAG_NEAR_PLANE, INTERSECTION_FLAG_FAR_PLANE, INTERSECTION_FLAG_ALWAYS, INTERSECTION_FLAG_NONE, INTERSECTION_FLAG_ALL } |
Intersection flags. More... | |
Public Member Functions | |
virtual INode * | GetNodeInterface ()=0 |
Get the mutable Graph::INode interface. More... | |
virtual const INode * | GetNodeInterface () const =0 |
Get the constant Graph::INode interface. More... | |
virtual ICullerNodeTarget * | GetSubCullerNodeTarget ()=0 |
Get the mutable container holding the optional child cullers. More... | |
virtual const ICullerNodeTarget * | GetSubCullerNodeTarget () const =0 |
Get the constant container holding the optional child cullers. More... | |
virtual ISubjectNodeTarget * | GetSubjectNodeTarget ()=0 |
Get the mutable Graph::ISubjectNodeTarget container. More... | |
virtual const ISubjectNodeTarget * | GetSubjectNodeTarget () const =0 |
Get the constant Graph::ISubjectNodeTarget container. More... | |
virtual ICullerNodeTarget * | GetParentCullerNodeTarget ()=0 |
Get the mutable Graph::ICullerNodeTarget container storing the culler's parent. More... | |
virtual const ICullerNodeTarget * | GetParentCullerNodeTarget () const =0 |
Get the constant Graph::ICullerNodeTarget container storing the culler's parent. More... | |
virtual UInt32 | Intersect (const IBoundingVolume *boundingVolume, UInt32 flags) const =0 |
Check if a given bounding volume can be culled. More... | |
virtual UInt32 | GetNumberOfStages () const =0 |
Get the culler's number of stages. More... | |
virtual const ICuller * | GetCuller (UInt32 stage) const =0 |
Get the culler's actual node at a given stage. More... | |
Intersection flags.
|
pure virtual |
Get the mutable Graph::INode interface.
This method returns a mutable pointer to the node's Graph::INode interface, to be able to query or modify common node properties such as active state, visibility or ID.
|
pure virtual |
Get the constant Graph::INode interface.
This method returns a constant pointer to the node's Graph::INode interface, to be able to query common node properties such as active state, visibility or ID.
|
pure virtual |
Get the mutable container holding the optional child cullers.
This method returns a mutable pointer to the node's Graph::ICullerNodeTarget sub container, which is used to store multiple sub-cullers.
|
pure virtual |
Get the constant container holding the optional child cullers.
This method returns a constant pointer to the node's Graph::ICullerNodeTarget sub container, which is used to store multiple sub-cullers.
|
pure virtual |
Get the mutable Graph::ISubjectNodeTarget container.
This method returns a mutable pointer to the node's Graph::ISubjectNodeTarget container, which allows to set or query the subject this culler refers to.
|
pure virtual |
Get the constant Graph::ISubjectNodeTarget container.
This method returns a constant pointer to the node's Graph::ISubjectNodeTarget container, which allows to query the camera this state node refers to.
|
pure virtual |
Get the mutable Graph::ICullerNodeTarget container storing the culler's parent.
This method returns a mutable pointer to the node's Graph::ICullerNodeTarget container that stores an optional reference to another culler, to set or query the culler's parent.
|
pure virtual |
Get the constant Graph::ICullerNodeTarget container storing the culler's parent.
This method returns a constant pointer to the node's Graph::ICullerNodeTarget container that stores an optional reference to another culler, to query the culler's parent.
|
pure virtual |
Check if a given bounding volume can be culled.
This method checks if a bounding volume transformed via a given world matrix and scale factor is intersecting the culler's view area. If false, the object represented through this volume is not visible and can be culled.
boundingVolume | The object's bounding volume. |
flags | A combination of IntersectionFlags specifying for which attributes to perform the intersection test. |
|
pure virtual |
Get the culler's number of stages.
Get the culler's actual node at a given stage.
stage | The stage to query. |