Panda3D
|
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 ©) | |
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... | |
PandaNode * | node () const |
Returns the node traversed to so far. More... | |
PandaNodePipelineReader * | node_reader () |
Returns the PipelineReader for the node traversed to so far. More... | |
const PandaNodePipelineReader * | node_reader () const |
Returns the PipelineReader for the node traversed to so far. More... | |
void | operator= (const CullTraverserData ©) |
PT (GeometricBoundingVolume) _view_frustum | |
Public Attributes | |
DrawMask | _draw_mask |
WorkingNodePath | _node_path |
PandaNodePipelineReader | _node_reader |
int | _portal_depth |
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.
|
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().
void CullTraverserData::apply_transform_and_state | ( | CullTraverser * | trav | ) |
Applies the transform and state from the current node onto the current data.
This also evaluates billboards, etc.
Definition at line 39 of file cullTraverserData.cxx.
References PandaNodePipelineReader::compose_draw_mask(), SceneSetup::get_camera_node(), PandaNodePipelineReader::get_effects(), CullTraverser::get_scene(), PandaNodePipelineReader::get_state(), PandaNodePipelineReader::get_tag(), CullTraverser::get_tag_state_key(), PandaNodePipelineReader::get_transform(), PandaNodePipelineReader::has_tag(), and CullTraverser::has_tag_state_key().
Referenced by CullTraverser::flush_level(), and LODNode::verify_child_bounds().
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().
|
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().
|
inline |
Returns the node traversed to so far.
Definition at line 113 of file cullTraverserData.I.
References WorkingNodePath::node(), and node_reader().
Referenced by CharacterJointEffect::cull_callback(), PGEntry::cull_callback(), CompassEffect::cull_callback(), CullTraverserData(), CullTraverser::draw_bounding_volume(), CullTraverser::flush_level(), PipeOcclusionCullTraverser::get_texture(), CullTraverser::traverse_below(), and NodeCullCallbackData::upcall().
|
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().
|
inline |
Returns the PipelineReader for the node traversed to so far.
Definition at line 135 of file cullTraverserData.I.
References PandaNodePipelineReader::compare_draw_mask(), SceneSetup::get_cs_world_transform(), CullTraverser::get_scene(), PandaNodePipelineReader::get_transform(), CullTraverser::get_world_transform(), and is_this_node_hidden().