#include <pointParticleRenderer.h>
Inheritance diagram for PointParticleRenderer:
Public Types | |
enum | PointParticleBlendType { PP_ONE_COLOR, PP_BLEND_LIFE, PP_BLEND_VEL } |
enum | ParticleRendererAlphaMode { PR_ALPHA_NONE, PR_ALPHA_OUT, PR_ALPHA_IN, PR_ALPHA_USER, PR_NOT_INITIALIZED_YET } |
enum | ParticleRendererBlendMethod { PP_NO_BLEND, PP_BLEND_LINEAR, PP_BLEND_CUBIC } |
Public Member Functions | |
PointParticleRenderer (const PointParticleRenderer ©) | |
Copy constructor. | |
PointParticleRenderer (ParticleRendererAlphaMode ad=PR_ALPHA_NONE, float point_size=1.0f, PointParticleBlendType bt=PP_ONE_COLOR, ParticleRendererBlendMethod bm=PP_NO_BLEND, const Colorf &sc=Colorf(1.0f, 1.0f, 1.0f, 1.0f), const Colorf &ec=Colorf(1.0f, 1.0f, 1.0f, 1.0f)) | |
special constructor | |
virtual | ~PointParticleRenderer (void) |
Simple destructor. | |
virtual BaseParticleRenderer * | make_copy (void) |
for spawning systems from dead particles | |
void | set_point_size (float point_size) |
void | set_start_color (const Colorf &sc) |
void | set_end_color (const Colorf &ec) |
void | set_blend_type (PointParticleBlendType bt) |
void | set_blend_method (ParticleRendererBlendMethod bm) |
float | get_point_size (void) const |
const Colorf & | get_start_color (void) const |
const Colorf & | get_end_color (void) const |
PointParticleBlendType | get_blend_type (void) const |
ParticleRendererBlendMethod | get_blend_method (void) const |
GeomNode * | get_render_node (void) const |
Query the geomnode pointer. | |
void | set_alpha_mode (ParticleRendererAlphaMode am) |
ParticleRendererAlphaMode | get_alpha_mode (void) const |
void | set_user_alpha (float ua) |
sets alpha for "user" alpha mode | |
float | get_user_alpha (void) const |
gets alpha for "user" alpha mode | |
int | get_ref_count () const |
Returns the current reference count. | |
int | ref () const |
Explicitly increments the reference count. | |
int | unref () const |
Explicitly decrements the reference count. | |
void | test_ref_count_integrity () const |
Does some easy checks to make sure that the reference count isn't completely bogus. | |
Static Public Member Functions | |
TypeHandle | get_class_type () |
void | init_type () |
Protected Member Functions | |
void | update_alpha_mode (ParticleRendererAlphaMode am) |
handles the base class part of alpha updating. | |
void | enable_alpha (void) |
Builds an intermediate node and transition that enables alpha channeling. | |
void | disable_alpha (void) |
kills the intermediate alpha node/arc | |
float | get_cur_alpha (BaseParticle *bp) |
gets current alpha for a particle | |
CPT (RenderState) _render_state | |
Protected Attributes | |
ParticleRendererAlphaMode | _alpha_mode |
Private Member Functions | |
Colorf | create_color (const BaseParticle *p) |
Generates the point color based on the render_type. | |
virtual void | birth_particle (int index) |
child birth | |
virtual void | kill_particle (int index) |
child kill | |
virtual void | init_geoms (void) |
On-construction initialization. | |
virtual void | render (pvector< PointerTo< PhysicsObject > > &po_vector, int ttl_particles) |
renders the particle system out to a GeomNode | |
virtual void | resize_pool (int new_size) |
reallocate the space for the vertex and color pools | |
Private Attributes | |
Colorf | _start_color |
Colorf | _end_color |
float | _point_size |
PointerTo< GeomPoint > | _point_primitive |
PTA_Vertexf | _vertex_array |
PTA_Colorf | _color_array |
int | _max_pool_size |
PointParticleBlendType | _blend_type |
ParticleRendererBlendMethod | _blend_method |
LPoint3f | _aabb_min |
LPoint3f | _aabb_max |
Friends | |
class | ParticleSystem |
Does NOT handle billboards- use BillboardParticleRenderer for that.
Definition at line 46 of file pointParticleRenderer.h.
|
Definition at line 65 of file baseParticleRenderer.h. Referenced by BaseParticleRenderer::set_alpha_mode(). |
|
Definition at line 73 of file baseParticleRenderer.h. Referenced by SpriteParticleRenderer::get_y_scale_flag(). |
|
Definition at line 48 of file pointParticleRenderer.h. Referenced by get_start_color(). |
|
Copy constructor.
Definition at line 60 of file pointParticleRenderer.cxx. |
|
special constructor
Definition at line 36 of file pointParticleRenderer.cxx. References _point_primitive, and init_geoms(). |
|
Simple destructor.
Definition at line 82 of file pointParticleRenderer.cxx. |
|
child birth
Implements BaseParticleRenderer. Definition at line 156 of file pointParticleRenderer.cxx. References _start_color, BaseParticle::get_parameterized_age(), PP_BLEND_LIFE, and PP_ONE_COLOR. |
|
|
|
Generates the point color based on the render_type.
Definition at line 182 of file pointParticleRenderer.cxx. References _blend_method, and BaseParticleRenderer::PP_BLEND_CUBIC. |
|
kills the intermediate alpha node/arc
Definition at line 99 of file baseParticleRenderer.cxx. References BaseParticleRenderer::_alpha_mode. Referenced by BaseParticleRenderer::enable_alpha(). |
|
Builds an intermediate node and transition that enables alpha channeling.
Definition at line 86 of file baseParticleRenderer.cxx. References BaseParticleRenderer::_alpha_mode, BaseParticleRenderer::disable_alpha(), and BaseParticleRenderer::PR_ALPHA_NONE. |
|
Definition at line 54 of file baseParticleRenderer.I. References BaseParticleRenderer::_user_alpha. |
|
Definition at line 129 of file pointParticleRenderer.I. |
|
Definition at line 118 of file pointParticleRenderer.I. |
|
|
gets current alpha for a particle
Definition at line 93 of file baseParticleRenderer.I. |
|
Definition at line 107 of file pointParticleRenderer.I. References _blend_method. |
|
Definition at line 85 of file pointParticleRenderer.I. References _end_color, Colorf, and INLINE. |
|
Returns the current reference count.
Definition at line 183 of file referenceCount.I. Referenced by RenderState::determine_bin_index(), RenderEffects::determine_show_bounds(), FontPool::ns_garbage_collect(), TexturePool::ns_garbage_collect(), MaterialPool::ns_get_material(), and TexturePool::ns_release_texture(). |
|
Query the geomnode pointer.
Definition at line 31 of file baseParticleRenderer.I. References BaseParticleRenderer::init_geoms(), INLINE, and BaseParticleRenderer::update_alpha_mode(). Referenced by SparkleParticleRenderer::kill_particle(), LineParticleRenderer::kill_particle(), and resize_pool(). |
|
Definition at line 96 of file pointParticleRenderer.I. References _blend_type, INLINE, and PointParticleBlendType. |
|
gets alpha for "user" alpha mode
Definition at line 80 of file baseParticleRenderer.I. References BaseParticleRenderer::_user_alpha, and BaseParticleRenderer::PR_ALPHA_USER. Referenced by GeomParticleRenderer::kill_particle(). |
|
On-construction initialization.
Implements BaseParticleRenderer. Definition at line 136 of file pointParticleRenderer.cxx. Referenced by PointParticleRenderer(). |
|
|
child kill
Implements BaseParticleRenderer. Definition at line 169 of file pointParticleRenderer.cxx. References _blend_method, BaseParticleRenderer::PP_BLEND_CUBIC, and PP_BLEND_VEL. |
|
for spawning systems from dead particles
Implements BaseParticleRenderer. Definition at line 95 of file pointParticleRenderer.cxx. References _color_array, _max_pool_size, _point_primitive, and _vertex_array. |
|
Explicitly increments the reference count. User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically. This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it. The return value is the new reference count. Definition at line 225 of file referenceCount.I. Referenced by ClientDevice::ClientDevice(), EggGroupNode::find_textures(), EggGroupNode::r_apply_texmats(), EggGroupNode::r_flatten_transforms(), and EggGroupNode::reverse_vertex_ordering(). |
|
renders the particle system out to a GeomNode
Definition at line 252 of file pointParticleRenderer.cxx. |
|
reallocate the space for the vertex and color pools
Implements BaseParticleRenderer. Definition at line 111 of file pointParticleRenderer.cxx. References _point_primitive, _point_size, GeomNode::add_geom(), BaseParticleRenderer::get_render_node(), and GeomNode::remove_all_geoms(). |
|
Definition at line 42 of file baseParticleRenderer.I. References BaseParticleRenderer::_alpha_mode, INLINE, and BaseParticleRenderer::ParticleRendererAlphaMode. |
|
Definition at line 74 of file pointParticleRenderer.I. References _start_color, Colorf, and INLINE. |
|
Definition at line 63 of file pointParticleRenderer.I. |
|
Definition at line 52 of file pointParticleRenderer.I. References _blend_type. |
|
Definition at line 29 of file pointParticleRenderer.I. References _start_color, and INLINE. |
|
Definition at line 41 of file pointParticleRenderer.I. References _end_color, and INLINE. |
|
sets alpha for "user" alpha mode
Definition at line 67 of file baseParticleRenderer.I. References BaseParticle::get_parameterized_age(), INLINE, BaseParticleRenderer::PR_ALPHA_IN, and BaseParticleRenderer::PR_ALPHA_OUT. |
|
Does some easy checks to make sure that the reference count isn't completely bogus.
Definition at line 328 of file referenceCount.I. References INLINE. Referenced by EggNode::determine_bin(), and ReferenceCount::~ReferenceCount(). |
|
Explicitly decrements the reference count. Note that the object will not be implicitly deleted by unref() simply because the reference count drops to zero. (Having a member function delete itself is problematic; plus, we don't have a virtual destructor anyway.) However, see the helper function unref_delete(). User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically. This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it. The return value is the new reference count. Definition at line 293 of file referenceCount.I. References INLINE. Referenced by RenderState::determine_bin_index(), and RenderEffects::determine_show_bounds(). |
|
handles the base class part of alpha updating.
Definition at line 112 of file baseParticleRenderer.cxx. Referenced by BaseParticleRenderer::get_render_node(). |
|
Definition at line 109 of file baseParticleRenderer.h. |
|
Definition at line 92 of file pointParticleRenderer.h. Referenced by render(). |
|
Definition at line 92 of file pointParticleRenderer.h. Referenced by render(). |
|
Definition at line 90 of file baseParticleRenderer.h. Referenced by BaseParticleRenderer::disable_alpha(), BaseParticleRenderer::enable_alpha(), GeomParticleRenderer::kill_particle(), SparkleParticleRenderer::render(), LineParticleRenderer::render(), and BaseParticleRenderer::set_alpha_mode(). |
|
Definition at line 90 of file pointParticleRenderer.h. Referenced by create_color(), get_end_color(), and kill_particle(). |
|
Definition at line 89 of file pointParticleRenderer.h. Referenced by get_start_color(), and set_end_color(). |
|
Definition at line 85 of file pointParticleRenderer.h. Referenced by make_copy(). |
|
Definition at line 79 of file pointParticleRenderer.h. Referenced by get_point_size(), and set_start_color(). |
|
Definition at line 87 of file pointParticleRenderer.h. Referenced by make_copy(). |
|
Definition at line 82 of file pointParticleRenderer.h. Referenced by make_copy(), PointParticleRenderer(), and resize_pool(). |
|
Definition at line 80 of file pointParticleRenderer.h. Referenced by resize_pool(). |
|
Definition at line 79 of file pointParticleRenderer.h. Referenced by birth_particle(), set_blend_method(), and set_point_size(). |
|
Definition at line 84 of file pointParticleRenderer.h. Referenced by make_copy(). |