#include <cullTraverserData.h>
Public Member Functions | |
CullTraverserData (const NodePath &start, const TransformState *render_transform, const TransformState *net_transform, const RenderState *state, GeometricBoundingVolume *view_frustum, GeometricBoundingVolume *guard_band) | |
CullTraverserData (const CullTraverserData ©) | |
void | operator= (const CullTraverserData ©) |
CullTraverserData (const CullTraverserData &parent, PandaNode *child) | |
This constructor creates a CullTraverserData object that reflects the next node down in the traversal. | |
~CullTraverserData () | |
PandaNode * | node () const |
Returns the node traversed to so far. | |
bool | is_in_view (const DrawMask &camera_mask) |
Returns true if the current node is within the view frustum, false otherwise. | |
void | apply_transform_and_state (CullTraverser *trav) |
Applies the transform and state from the current node onto the current data. | |
void | apply_transform_and_state (CullTraverser *trav, ConstPointerTo< TransformState > node_transform, ConstPointerTo< RenderState > node_state, ConstPointerTo< RenderEffects > node_effects) |
Applies the indicated transform and state changes (e.g. | |
Public Attributes | |
WorkingNodePath | _node_path |
ConstPointerTo< TransformState > | _render_transform |
ConstPointerTo< TransformState > | _net_transform |
ConstPointerTo< RenderState > | _state |
PointerTo< GeometricBoundingVolume > | _view_frustum |
PointerTo< GeometricBoundingVolume > | _guard_band |
Private Member Functions | |
bool | is_in_view_impl () |
The private implementation of is_in_view(). | |
Static Private Member Functions | |
ConstPointerTo< RenderState > | get_fake_view_frustum_cull_state () |
Returns a RenderState for rendering stuff in red wireframe, strictly for the fake_view_frustum_cull effect. |
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 64 of file cullTraverserData.h.
|
Definition at line 32 of file cullTraverserData.I. |
|
Definition at line 56 of file cullTraverserData.I. References _guard_band, _net_transform, _node_path, _render_transform, _state, _view_frustum, and INLINE. |
|
This constructor creates a CullTraverserData object that reflects the next node down in the traversal.
Definition at line 95 of file cullTraverserData.I. |
|
Definition at line 114 of file cullTraverserData.I. References PandaNode::get_draw_mask(), PandaNode::get_transform(), INLINE, TransformState::is_invalid(), and node(). |
|
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 45 of file cullTraverserData.cxx. References NULL. |
|
Applies the transform and state from the current node onto the current data. This also evaluates billboards, etc. Definition at line 182 of file cullTraverserData.I. Referenced by is_in_view(), and CullTraverser::traverse(). |
|
Returns a RenderState for rendering stuff in red wireframe, strictly for the fake_view_frustum_cull effect.
Definition at line 171 of file cullTraverserData.cxx. |
|
Returns true if the current node is within the view frustum, false otherwise. If the node's bounding volume falls completely within the view frustum, this will also reset the view frustum pointer, saving some work for future nodes. Definition at line 147 of file cullTraverserData.I. References apply_transform_and_state(), INLINE, and node(). Referenced by CullTraverser::traverse(). |
|
The private implementation of is_in_view().
Definition at line 114 of file cullTraverserData.cxx. References fake_view_frustum_cull. |
|
Returns the node traversed to so far.
Definition at line 126 of file cullTraverserData.I. Referenced by CullTraverser::get_bounds_inner_viz_state(), is_in_view(), CullTraverser::traverse(), and ~CullTraverserData(). |
|
Definition at line 75 of file cullTraverserData.I. References INLINE. |
|
Definition at line 92 of file cullTraverserData.h. Referenced by CullTraverserData(). |
|
Definition at line 89 of file cullTraverserData.h. Referenced by CullTraverserData(), PGItem::has_cull_callback(), and LODNode::xform(). |
|
Definition at line 87 of file cullTraverserData.h. Referenced by CullTraverserData(), and RopeNode::safe_to_transform(). |
|
Definition at line 88 of file cullTraverserData.h. Referenced by CullTraverserData(). |
|
Definition at line 90 of file cullTraverserData.h. Referenced by CollisionNode::combine_with(), CullTraverserData(), and PGItem::has_cull_callback(). |
|
Definition at line 91 of file cullTraverserData.h. Referenced by CullTraverserData(). |