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;
145 INLINE CPT(TransformState) CullTraverserData::
156 INLINE CPT(TransformState) CullTraverserData::
167 INLINE
const TransformState *CullTraverserData::
169 return _net_transform;
181 INLINE
bool CullTraverserData::
182 is_in_view(
const DrawMask &camera_mask) {
195 _cull_planes->is_empty()) {
202 return is_in_view_impl();
216 return (_draw_mask & PandaNode::get_overall_bit()).is_zero() ||
217 (_draw_mask & camera_mask).is_zero();
A basic node of the scene graph or data graph.
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.
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 ...
This collects together the pieces of data that are accumulated for each node while walking the scene ...
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...
const TransformState * get_cs_world_transform() const
Returns the position from the starting node relative to the camera, in the GSG's internal coordinate ...
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 ...
void check_cached(bool update_bounds) const
Ensures that the draw masks etc.
const TransformState * get_world_transform() const
Returns the position of the starting node relative to the camera.
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.
SceneSetup * get_scene() const
Returns the SceneSetup object.
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...