Panda3D
Public Member Functions | Public Attributes | List of all members
CullTraverserData Class Reference

This collects together the pieces of data that are accumulated for each node while walking the scene graph during the cull traversal. More...

#include "cullTraverserData.h"

Public Member Functions

 CullTraverserData (const NodePath &start, const TransformState *net_transform, const RenderState *state, GeometricBoundingVolume *view_frustum, Thread *current_thread)
 
 CullTraverserData (const CullTraverserData &copy)
 
 CullTraverserData (const CullTraverserData &parent, PandaNode *child)
 This constructor creates a CullTraverserData object that reflects the next node down in the traversal. More...
 
void apply_transform_and_state (CullTraverser *trav)
 Applies the transform and state from the current node onto the current data. More...
 
void apply_transform_and_state (CullTraverser *trav, CPT(TransformState) node_transform, CPT(RenderState) node_state, CPT(RenderEffects) node_effects, const RenderAttrib *off_clip_planes)
 Applies the indicated transform and state changes (e.g. More...
 
 CPT (TransformState) get_modelview_transform(const CullTraverser *trav) const
 
 CPT (TransformState) get_internal_transform(const CullTraverser *trav) const
 
 CPT (TransformState) _net_transform
 
 CPT (RenderState) _state
 
 CPT (CullPlanes) _cull_planes
 
const TransformState * get_net_transform (const CullTraverser *trav) const
 
bool is_in_view (const DrawMask &camera_mask)
 
bool is_this_node_hidden (const DrawMask &camera_mask) const
 Returns true if this particular node is hidden, even though we might be traversing past this node to find a child node that has had show_through() called for it. More...
 
PandaNodenode () const
 Returns the node traversed to so far. More...
 
PandaNodePipelineReadernode_reader ()
 Returns the PipelineReader for the node traversed to so far. More...
 
const PandaNodePipelineReadernode_reader () const
 Returns the PipelineReader for the node traversed to so far. More...
 
void operator= (const CullTraverserData &copy)
 
 PT (GeometricBoundingVolume) _view_frustum
 

Public Attributes

DrawMask _draw_mask
 
WorkingNodePath _node_path
 
PandaNodePipelineReader _node_reader
 
int _portal_depth
 

Detailed Description

This collects together the pieces of data that are accumulated for each node while walking the scene graph during the cull traversal.

Having this as a separate object simplifies the parameter list to CullTraverser::r_traverse(), as well as to other functions like PandaNode::cull_callback(). It also makes it easier to add cull parameters, and provides a place to abstract out some of the cull behavior (like view-frustum culling).

Definition at line 45 of file cullTraverserData.h.

Constructor & Destructor Documentation

◆ CullTraverserData()

CullTraverserData::CullTraverserData ( const CullTraverserData parent,
PandaNode child 
)
inline

This constructor creates a CullTraverserData object that reflects the next node down in the traversal.

Definition at line 82 of file cullTraverserData.I.

References PandaNodePipelineReader::check_cached(), and node().

Member Function Documentation

◆ apply_transform_and_state() [1/2]

void CullTraverserData::apply_transform_and_state ( CullTraverser trav)

◆ apply_transform_and_state() [2/2]

void CullTraverserData::apply_transform_and_state ( CullTraverser trav,
CPT(TransformState)  node_transform,
CPT(RenderState node_state,
CPT(RenderEffects node_effects,
const RenderAttrib off_clip_planes 
)

Applies the indicated transform and state changes (e.g.

as extracted from a node) onto the current data. This also evaluates billboards, etc.

Definition at line 66 of file cullTraverserData.cxx.

References RenderEffects::cull_callback(), RenderEffects::get_effect(), and RenderEffects::has_cull_callback().

◆ is_this_node_hidden()

bool CullTraverserData::is_this_node_hidden ( const DrawMask camera_mask) const
inline

Returns true if this particular node is hidden, even though we might be traversing past this node to find a child node that has had show_through() called for it.

If this returns true, the node should not be rendered.

Definition at line 215 of file cullTraverserData.I.

Referenced by node_reader(), and CullTraverser::traverse_below().

◆ node()

PandaNode * CullTraverserData::node ( ) const
inline

◆ node_reader() [1/2]

PandaNodePipelineReader * CullTraverserData::node_reader ( )
inline

Returns the PipelineReader for the node traversed to so far.

Definition at line 124 of file cullTraverserData.I.

Referenced by CullTraverser::flush_level(), PipeOcclusionCullTraverser::get_texture(), node(), and CullTraverser::traverse_below().

◆ node_reader() [2/2]

const PandaNodePipelineReader * CullTraverserData::node_reader ( ) const
inline

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