15 #ifndef CULLTRAVERSER_H
16 #define CULLTRAVERSER_H
18 #include "pandabase.h"
21 #include "sceneSetup.h"
22 #include "renderState.h"
23 #include "transformState.h"
24 #include "geometricBoundingVolume.h"
25 #include "pointerTo.h"
28 #include "typedReferenceCount.h"
29 #include "pStatCollector.h"
30 #include "fogAttrib.h"
54 INLINE
Thread *get_current_thread()
const;
56 virtual void set_scene(
SceneSetup *scene_setup,
58 bool dr_incomplete_render);
60 INLINE
bool has_tag_state_key()
const;
61 INLINE
const string &get_tag_state_key()
const;
63 INLINE
void set_camera_mask(
const DrawMask &camera_mask);
64 INLINE
const DrawMask &get_camera_mask()
const;
66 INLINE
const TransformState *get_camera_transform()
const;
67 INLINE
const TransformState *get_world_transform()
const;
69 INLINE
const RenderState *get_initial_state()
const;
70 INLINE
bool get_depth_offset_decals()
const;
75 INLINE
void set_cull_handler(
CullHandler *cull_handler);
78 INLINE
void set_portal_clipper(
PortalClipper *portal_clipper);
81 INLINE
bool get_effective_incomplete_render()
const;
87 virtual void end_traverse();
89 INLINE
static void flush_level();
92 const TransformState *internal_transform)
const;
111 PN_stdfloat latitude, PN_stdfloat longitude);
112 static CPT(
RenderState) get_bounds_outer_viz_state();
113 static CPT(
RenderState) get_bounds_inner_viz_state();
120 bool _has_tag_state_key;
121 string _tag_state_key;
126 bool _effective_incomplete_render;
132 static void init_type() {
133 TypedReferenceCount::init_type();
134 register_type(_type_handle,
"CullTraverser",
135 TypedReferenceCount::get_class_type());
138 return get_class_type();
140 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
146 #include "cullTraverserData.h"
148 #include "cullTraverser.I"
A basic node of the scene graph or data graph.
This defines a bounding sphere, consisting of a center and a radius.
This collects together the pieces of data that are accumulated for each node while walking the scene ...
A base class for things which need to inherit from both TypedObject and from ReferenceCount.
This is an abstract class for any volume in any sense which can be said to define the locality of ref...
A lightweight class that represents a single element that may be timed and/or counted via stats...
This is another abstract class, for a general class of bounding volumes that actually enclose points ...
This defines the abstract interface for an object that receives Geoms identified by the CullTraverser...
The smallest atom of cull.
This object performs a depth-first traversal of the scene graph, with optional view-frustum culling...
A container for geometry primitives.
This represents a unique collection of RenderAttrib objects that correspond to a particular renderabl...
This is a base class for the GraphicsStateGuardian class, which is itself a base class for the variou...
A thread; that is, a lightweight process.
Encapsulates all the communication with a particular instance of a given rendering backend...
TypeHandle is the identifier used to differentiate C++ class types.
This object holds the camera position, etc., and other general setup information for rendering a part...
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...