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 &parent, PandaNode *child)
 This constructor creates a CullTraverserData object that reflects the next node down in the traversal. More...
 
void apply_transform (const TransformState *node_transform)
 Applies the indicated transform changes onto the current data. More...
 
void apply_transform_and_state (CullTraverser *trav)
 Applies the transform and state from the current node onto the current data. 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 TransformStateget_net_transform (const CullTraverser *trav) const
 
NodePath get_node_path () 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...
 
 PT (GeometricBoundingVolume) _view_frustum
 

Public Attributes

DrawMask _draw_mask
 
PandaNodePipelineReader _node_reader
 
int _portal_depth
 
 get_node_path
 Constructs and returns an actual NodePath that represents the same path we have just traversed. More...
 

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 40 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 43 of file cullTraverserData.I.

Member Function Documentation

◆ apply_transform()

void CullTraverserData::apply_transform ( const TransformState node_transform)

Applies the indicated transform changes onto the current data.

Definition at line 78 of file cullTraverserData.cxx.

References TransformState::is_identity(), and TransformState::is_singular().

Referenced by apply_transform_and_state().

◆ apply_transform_and_state()

void CullTraverserData::apply_transform_and_state ( CullTraverser trav)

◆ 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 160 of file cullTraverserData.I.

◆ node()

PandaNode * CullTraverserData::node ( ) const
inline

Returns the node traversed to so far.

Definition at line 66 of file cullTraverserData.I.

Referenced by NodeCullCallbackData::upcall().

◆ node_reader() [1/2]

PandaNodePipelineReader * CullTraverserData::node_reader ( )
inline

Returns the PipelineReader for the node traversed to so far.

Definition at line 74 of file cullTraverserData.I.

◆ node_reader() [2/2]

const PandaNodePipelineReader * CullTraverserData::node_reader ( ) const
inline

Returns the PipelineReader for the node traversed to so far.

Definition at line 82 of file cullTraverserData.I.

Member Data Documentation

◆ get_node_path

NodePath CullTraverserData::get_node_path
inline

Constructs and returns an actual NodePath that represents the same path we have just traversed.

Definition at line 70 of file cullTraverserData.h.


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