15 #ifndef CULLABLEOBJECT_H
16 #define CULLABLEOBJECT_H
18 #include "pandabase.h"
21 #include "geomVertexData.h"
22 #include "geomMunger.h"
23 #include "renderState.h"
24 #include "transformState.h"
25 #include "pointerTo.h"
26 #include "referenceCount.h"
28 #include "cullTraverserData.h"
29 #include "pStatCollector.h"
30 #include "deletedChain.h"
31 #include "graphicsStateGuardianBase.h"
32 #include "sceneSetup.h"
33 #include "lightMutex.h"
34 #include "callbackObject.h"
35 #include "geomDrawCallbackData.h"
46 #ifdef DO_MEMORY_USAGE
48 #endif // DO_MEMORY_USAGE
53 const TransformState *internal_transform);
55 INLINE CullableObject(
const CullableObject ©);
56 INLINE
void operator = (
const CullableObject ©);
62 bool force,
Thread *current_thread);
64 INLINE
bool request_resident()
const;
65 INLINE
static void flush_level();
70 ALLOC_DELETED_CHAIN(CullableObject);
72 void output(ostream &out)
const;
79 CPT(TransformState) _internal_transform;
83 bool munge_points_to_quads(
const CullTraverser *traverser,
bool force);
89 bool force,
Thread *current_thread);
99 INLINE SortPoints(
const PointData *array);
100 INLINE
bool operator ()(
unsigned short a,
unsigned short b)
const;
102 const PointData *_array;
108 SourceFormat(
const GeomVertexFormat *format,
bool sprite_texcoord);
109 INLINE
bool operator < (
const SourceFormat &other)
const;
111 CPT(GeomVertexFormat) _format;
112 bool _sprite_texcoord;
113 bool _retransform_sprites;
129 static void init_type() {
130 #ifdef DO_MEMORY_USAGE
131 ReferenceCount::init_type();
132 register_type(_type_handle,
"CullableObject",
133 ReferenceCount::get_class_type());
135 register_type(_type_handle,
"CullableObject");
136 #endif // DO_MEMORY_USAGE
143 INLINE ostream &operator << (ostream &out,
const CullableObject &
object) {
148 #include "cullableObject.I"
This is our own Panda specialization on the default STL map.
Objects of this class are used to convert vertex data from a Geom into a format suitable for passing ...
A lightweight class that represents a single element that may be timed and/or counted via stats...
The smallest atom of cull.
This defines the actual numeric vertex data stored in a Geom, in the structure defined by a particula...
A container for geometry primitives.
This represents a unique collection of RenderAttrib objects that correspond to a particular renderabl...
This is a generic object that can be assigned to a callback at various points in the rendering proces...
A base class for all things that want to be reference-counted.
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.
TypeHandle is the identifier used to differentiate C++ class types.
This is a standard, non-reentrant mutex, similar to the Mutex class.
This object performs a depth-first traversal of the scene graph, with optional view-frustum culling...