The ICuller graph node interface. More...
#include "murl_graph_i_culler.h"
Public Types | |
enum | IntersectionFlags : UInt32 { 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... | |
Detailed Description
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.
Member Enumeration Documentation
◆ IntersectionFlags
Intersection flags.
Member Function Documentation
◆ GetNodeInterface() [1/2]
|
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.
- Returns
- The mutable Graph::INode interface, or null if not available
◆ GetNodeInterface() [2/2]
|
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.
- Returns
- The constant Graph::INode interface, or null if not available
◆ GetSubCullerNodeTarget() [1/2]
|
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.
- Returns
- The mutable Graph::ICullerNodeTarget container, or null if not available.
◆ GetSubCullerNodeTarget() [2/2]
|
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.
- Returns
- The constant Graph::ICullerNodeTarget container, or null if not available.
◆ GetSubjectNodeTarget() [1/2]
|
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.
- Returns
- The mutable Graph::ISubjectNodeTarget container, or null if not available.
◆ GetSubjectNodeTarget() [2/2]
|
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.
- Returns
- The mutable Graph::ISubjectNodeTarget container, or null if not available.
◆ GetParentCullerNodeTarget() [1/2]
|
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.
- Returns
- The mutable Graph::ICullerNodeTarget parent container, or null if not available.
◆ GetParentCullerNodeTarget() [2/2]
|
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.
- Returns
- The constant Graph::ICullerNodeTarget parent container, or null if not available.
◆ Intersect()
|
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.
- Parameters
-
boundingVolume The object's bounding volume. flags A combination of IntersectionFlags specifying for which attributes to perform the intersection test.
- Returns
- A combination of IntersectionFlags specifying the result of the intersection test.
◆ GetNumberOfStages()
|
pure virtual |
Get the culler's number of stages.
- Returns
- The number of stages.
◆ GetCuller()
Get the culler's actual node at a given stage.
- Parameters
-
stage The stage to query.
- Returns
- The culler sub-object.
The documentation for this interface was generated from the following file:
- murl_graph_i_culler.h