Murl Engine Lua Addon API  Version 1.0 beta
Murl.Graph.ICuller

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 sceneGraphStatesSlotsUnits for an overview of state handling during scene graph traversal.
See Graph::ICullerState for activating a culler during traversal.


Table members

Enumerations


IntersectionFlags

Intersection flags.

Murl.Graph.ICuller.INTERSECTION_FLAG_VOLUMEQuery intersections with the overall bounding volume.
Murl.Graph.ICuller.INTERSECTION_FLAG_NEAR_PLANEQuery intersections with the near plane.
Murl.Graph.ICuller.INTERSECTION_FLAG_FAR_PLANEQuery intersections with the far plane.
Murl.Graph.ICuller.INTERSECTION_FLAG_ALWAYSDo not query intersections, report back the same flag.
Murl.Graph.ICuller.INTERSECTION_FLAG_NONENo intersection flags.
Murl.Graph.ICuller.INTERSECTION_FLAG_ALLAll available intersection flags combined.


Functions



Methods


GetNodeInterface()

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.

Murl.Graph.INode GetNodeInterface()

Returns
Murl.Graph.INode The constant Graph::INode interface, or null if not available

GetSubCullerNodeTarget()

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.

Murl.Graph.IGenericNodeTarget.GraphICuller GetSubCullerNodeTarget()

Returns
Murl.Graph.IGenericNodeTarget.GraphICuller The constant Graph::ICullerNodeTarget container, or null if not available.

GetSubjectNodeTarget()

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.

Murl.Graph.IGenericNodeTarget.GraphISubject GetSubjectNodeTarget()

Returns
Murl.Graph.IGenericNodeTarget.GraphISubject The mutable Graph::ISubjectNodeTarget container, or null if not available.

GetParentCullerNodeTarget()

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.

Murl.Graph.IGenericNodeTarget.GraphICuller GetParentCullerNodeTarget()

Returns
Murl.Graph.IGenericNodeTarget.GraphICuller The constant Graph::ICullerNodeTarget parent container, or null if not available.

Intersect(boundingVolume, flags)

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.

Integer Intersect(Murl.Graph.IBoundingVolume boundingVolume, Integer flags)

Parameters
boundingVolumeThe object's bounding volume.
flagsA combination of IntersectionFlags specifying for which attributes to perform the intersection test.
Returns
Integer A combination of IntersectionFlags specifying the result of the intersection test.

GetNumberOfStages()

Get the culler's number of stages.

Integer GetNumberOfStages()

Returns
Integer The number of stages.

GetCuller(stage)

Get the culler's actual node at a given stage.

Murl.Graph.ICuller GetCuller(Integer stage)

Parameters
stageThe stage to query.
Returns
Murl.Graph.ICuller The culler sub-object.