17 INLINE CullTraverserData::
18 CullTraverserData(
const NodePath &start,
25 _node_reader(start.node(), current_thread),
26 _net_transform(net_transform),
28 _view_frustum(view_frustum),
34 bool check_bounds = (view_frustum !=
nullptr);
42 INLINE CullTraverserData::
48 _node_reader(child, parent._node_reader.get_current_thread()),
49 _net_transform(parent._net_transform),
50 _state(parent._state),
51 _view_frustum(parent._view_frustum),
52 _cull_planes(parent._cull_planes),
53 _draw_mask(parent._draw_mask),
54 _portal_depth(parent._portal_depth)
57 bool check_bounds = !_cull_planes->is_empty() ||
58 (_view_frustum !=
nullptr);
67 return (
PandaNode *)_node_reader.get_node();
91 get_node_path()
const {
93 result._head = r_get_node_path();
122 return _net_transform;
131 INLINE
bool CullTraverserData::
132 is_in_view(
const DrawMask &camera_mask) {
143 if (_view_frustum ==
nullptr &&
144 _cull_planes->is_empty()) {
151 return is_in_view_impl();
161 return (_draw_mask & PandaNode::get_overall_bit()).is_zero() ||
162 (_draw_mask & camera_mask).is_zero();
A basic node of the scene graph or data graph.
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.
static NodePath fail()
Creates a NodePath with the ET_fail error type set.
CPT(TransformState) CullTraverserData
Returns the modelview transform: the relative transform from the camera to the model.
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,...