15 #ifndef BASEPARTICLERENDERER_H 16 #define BASEPARTICLERENDERER_H 18 #include "pandabase.h" 19 #include "referenceCount.h" 20 #include "physicsObject.h" 21 #include "renderState.h" 23 #include "colorBlendAttrib.h" 25 #include "particleCommonFuncs.h" 26 #include "baseParticle.h" 36 enum ParticleRendererAlphaMode {
42 PR_NOT_INITIALIZED_YET
45 enum ParticleRendererBlendMethod {
53 INLINE
GeomNode *get_render_node()
const;
54 INLINE
NodePath get_render_node_path()
const;
56 INLINE
void set_alpha_mode(ParticleRendererAlphaMode am);
57 INLINE ParticleRendererAlphaMode get_alpha_mode()
const;
59 INLINE
void set_user_alpha(PN_stdfloat ua);
60 INLINE PN_stdfloat get_user_alpha()
const;
62 INLINE
void set_color_blend_mode(ColorBlendAttrib::Mode bm, ColorBlendAttrib::Operand oa = ColorBlendAttrib::O_zero, ColorBlendAttrib::Operand ob = ColorBlendAttrib::O_zero);
64 void set_ignore_scale(
bool ignore_scale);
65 INLINE
bool get_ignore_scale()
const;
67 virtual void output(ostream &out)
const;
68 virtual void write(ostream &out,
int indent=0)
const;
74 ParticleRendererAlphaMode _alpha_mode;
79 void update_alpha_mode(ParticleRendererAlphaMode am);
86 virtual void resize_pool(
int new_size) = 0;
94 PN_stdfloat _user_alpha;
104 virtual void birth_particle(
int index) = 0;
105 virtual void kill_particle(
int index) = 0;
108 virtual void init_geoms() = 0;
110 int ttl_particles) = 0;
115 #include "baseParticleRenderer.I" 117 #endif // BASEPARTICLERENDERER_H A body on which physics will be applied.
This is our own Panda specialization on the default STL vector.
Contains and manages a particle system.
Pure virtual particle renderer base class.
This represents a unique collection of RenderAttrib objects that correspond to a particular renderabl...
A base class for all things that want to be reference-counted.
An individual, physically-modelable particle abstract base class.
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
A node that holds Geom objects, renderable pieces of geometry.