20 INLINE CullTraverserData::
21 CullTraverserData(
const NodePath &start,
22 const TransformState *net_transform,
27 _node_reader(start.node(), current_thread),
28 _net_transform(net_transform),
30 _view_frustum(view_frustum),
45 INLINE CullTraverserData::
47 _node_path(copy._node_path),
48 _node_reader(copy._node_reader),
49 _net_transform(copy._net_transform),
51 _view_frustum(copy._view_frustum),
52 _cull_planes(copy._cull_planes),
53 _draw_mask(copy._draw_mask),
54 _portal_depth(copy._portal_depth)
63 INLINE
void CullTraverserData::
65 _node_path = copy._node_path;
66 _node_reader = copy._node_reader;
67 _net_transform = copy._net_transform;
69 _view_frustum = copy._view_frustum;
70 _cull_planes = copy._cull_planes;
71 _draw_mask = copy._draw_mask;
72 _portal_depth = copy._portal_depth;
81 INLINE CullTraverserData::
83 _node_path(parent._node_path, child),
84 _node_reader(child, parent._node_reader.get_current_thread()),
85 _net_transform(parent._net_transform),
86 _state(parent._state),
87 _view_frustum(parent._view_frustum),
88 _cull_planes(parent._cull_planes),
89 _draw_mask(parent._draw_mask),
90 _portal_depth(parent._portal_depth)
93 bool check_bounds = !_cull_planes->is_empty() ||
103 INLINE CullTraverserData::
104 ~CullTraverserData() {
114 return _node_path.
node();
125 return &_node_reader;
136 return &_node_reader;
147 return trav->get_world_transform()->compose(_net_transform);
158 return trav->get_scene()->get_cs_world_transform()->compose(_net_transform);
167 INLINE
const TransformState *CullTraverserData::
169 return _net_transform;
195 _cull_planes->is_empty()) {
202 return is_in_view_impl();
217 (_draw_mask & camera_mask).is_zero();
A basic node of the scene graph or data graph.
void check_cached(bool update_bounds) const
Ensures that the draw masks etc.
This collects together the pieces of data that are accumulated for each node while walking the scene ...
static DrawMask get_overall_bit()
Returns the special bit that, when specifically cleared in the node's DrawMask, indicates that the no...
PandaNode * node() const
Returns the node traversed to so far.
const TransformState * get_transform() const
Returns the transform that has been set on this particular node.
This represents the set of clip planes and/or occluders that are definitely in effect for the current...
PandaNode * node() const
Returns the node traversed to so far.
This is another abstract class, for a general class of bounding volumes that actually enclose points ...
bool compare_draw_mask(DrawMask running_draw_mask, DrawMask camera_mask) const
Compares the running draw mask computed during a traversal with this node's net draw masks...
bool is_in_view(const DrawMask &camera_mask)
Returns true if the current node is within the view frustum, false otherwise.
PandaNodePipelineReader * node_reader()
Returns the PipelineReader for the node traversed to so far.
This represents a unique collection of RenderAttrib objects that correspond to a particular renderabl...
A thread; that is, a lightweight process.
Encapsulates the data from a PandaNode, pre-fetched for one stage of the pipeline.
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 ...
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
This object performs a depth-first traversal of the scene graph, with optional view-frustum culling...