#include <spriteParticleRenderer.h>
Inheritance diagram for SpriteParticleRenderer:
Public Types | |
enum | SourceType { ST_texture, ST_from_node } |
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 | |
SpriteParticleRenderer (Texture *tex=(Texture *) NULL) | |
constructor | |
SpriteParticleRenderer (const SpriteParticleRenderer ©) | |
copy constructor | |
virtual | ~SpriteParticleRenderer (void) |
destructor | |
virtual BaseParticleRenderer * | make_copy (void) |
child dynamic copy | |
SourceType | get_source_type () const |
Returns an indication of whether the texture for this renderer was set via a call to set_texture(), or via set_from_node(). | |
void | set_from_node (const NodePath &node_path) |
Sets the properties on this render from the geometry referenced by the indicated NodePath. | |
void | set_texture (Texture *tex) |
void | set_ll_uv (const TexCoordf &ll_uv) |
Sets the UV coordinate of the lower-left corner of all the sprites generated by this renderer. | |
void | set_ur_uv (const TexCoordf &ur_uv) |
Sets the UV coordinate of the upper-right corner of all the sprites generated by this renderer. | |
void | set_color (const Colorf &color) |
void | set_x_scale_flag (bool animate_x_ratio) |
void | set_y_scale_flag (bool animate_y_ratio) |
void | set_anim_angle_flag (bool animate_theta) |
void | set_initial_x_scale (float initial_x_scale) |
void | set_final_x_scale (float final_x_scale) |
void | set_initial_y_scale (float initial_y_scale) |
void | set_final_y_scale (float final_y_scale) |
void | set_nonanimated_theta (float theta) |
void | set_alpha_blend_method (ParticleRendererBlendMethod bm) |
void | set_alpha_disable (bool ad) |
Texture * | get_texture (void) const |
const TexCoordf & | get_ll_uv () const |
Returns the UV coordinate of the lower-left corner; see set_ll_uv(). | |
const TexCoordf & | get_ur_uv () const |
Returns the UV coordinate of the upper-right corner; see set_ur_uv(). | |
Colorf | get_color (void) const |
bool | get_x_scale_flag (void) const |
bool | get_y_scale_flag (void) const |
bool | get_anim_angle_flag (void) const |
float | get_initial_x_scale (void) const |
float | get_final_x_scale (void) const |
float | get_initial_y_scale (void) const |
float | get_final_y_scale (void) const |
float | get_nonanimated_theta (void) const |
ParticleRendererBlendMethod | get_alpha_blend_method (void) const |
bool | get_alpha_disable (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 | |
virtual void | birth_particle (int index) |
child birth, one of those 'there-if-we-want-it' things. | |
virtual void | kill_particle (int index) |
child death | |
virtual void | init_geoms (void) |
initializes everything, called on traumatic events such as construction and serious particlesystem modifications | |
virtual void | render (pvector< PointerTo< PhysicsObject > > &po_vector, int ttl_particles) |
big child render. | |
virtual void | resize_pool (int new_size) |
reallocate the vertex pool. | |
Private Attributes | |
PointerTo< GeomSprite > | _sprite_primitive |
PTA_Vertexf | _vertex_array |
PTA_Colorf | _color_array |
PTA_float | _x_texel_array |
PTA_float | _y_texel_array |
PTA_float | _theta_array |
Colorf | _color |
float | _initial_x_texel_ratio |
float | _final_x_texel_ratio |
float | _initial_y_texel_ratio |
float | _final_y_texel_ratio |
float | _theta |
bool | _animate_x_ratio |
bool | _animate_y_ratio |
bool | _animate_theta |
ParticleRendererBlendMethod | _blend_method |
Vertexf | _aabb_min |
Vertexf | _aabb_max |
int | _pool_size |
SourceType | _source_type |
Friends | |
class | ParticleSystem |
Definition at line 47 of file spriteParticleRenderer.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 get_y_scale_flag(). |
|
Definition at line 53 of file spriteParticleRenderer.h. |
|
constructor
Definition at line 38 of file spriteParticleRenderer.cxx. References _sprite_primitive, init_geoms(), and tex. |
|
copy constructor
Definition at line 65 of file spriteParticleRenderer.cxx. References _color, _final_y_texel_ratio, _sprite_primitive, and _theta. |
|
destructor
Definition at line 90 of file spriteParticleRenderer.cxx. References NodePath::is_empty(), and nassertv. |
|
child birth, one of those 'there-if-we-want-it' things. not really too useful here, so it turns out we don't really want it. Implements BaseParticleRenderer. Definition at line 284 of file spriteParticleRenderer.cxx. References _aabb_max, _aabb_min, _animate_theta, _initial_y_texel_ratio, and _theta. |
|
|
|
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 386 of file spriteParticleRenderer.I. |
|
Definition at line 397 of file spriteParticleRenderer.I. |
|
Definition at line 54 of file baseParticleRenderer.I. References BaseParticleRenderer::_user_alpha. |
|
Definition at line 320 of file spriteParticleRenderer.I. References _sprite_primitive, and INLINE. |
|
|
Definition at line 287 of file spriteParticleRenderer.I. |
|
gets current alpha for a particle
Definition at line 93 of file baseParticleRenderer.I. |
|
Definition at line 342 of file spriteParticleRenderer.I. |
|
Definition at line 364 of file spriteParticleRenderer.I. |
|
Definition at line 331 of file spriteParticleRenderer.I. |
|
Definition at line 353 of file spriteParticleRenderer.I. |
|
Returns the UV coordinate of the lower-left corner; see set_ll_uv().
Definition at line 261 of file spriteParticleRenderer.I. References _initial_x_texel_ratio, and INLINE. |
|
Definition at line 375 of file spriteParticleRenderer.I. |
|
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 PointParticleRenderer::resize_pool(). |
|
Returns an indication of whether the texture for this renderer was set via a call to set_texture(), or via set_from_node().
Definition at line 35 of file spriteParticleRenderer.I. References _source_type, _sprite_primitive, INLINE, ST_texture, tex, and TexCoordf. |
|
Definition at line 246 of file spriteParticleRenderer.I. References _animate_y_ratio, and INLINE. |
|
Returns the UV coordinate of the upper-right corner; see set_ur_uv().
Definition at line 276 of file spriteParticleRenderer.I. References _final_x_texel_ratio. |
|
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(). |
|
Definition at line 298 of file spriteParticleRenderer.I. |
|
Definition at line 309 of file spriteParticleRenderer.I. References _blend_method, INLINE, and BaseParticleRenderer::ParticleRendererBlendMethod. |
|
initializes everything, called on traumatic events such as construction and serious particlesystem modifications
Implements BaseParticleRenderer. Definition at line 263 of file spriteParticleRenderer.cxx. References _animate_x_ratio, _animate_y_ratio, _color_array, _initial_x_texel_ratio, _theta_array, _vertex_array, _x_texel_array, _y_texel_array, Colorf, and Vertexf. Referenced by SpriteParticleRenderer(). |
|
|
child death
Implements BaseParticleRenderer. Definition at line 296 of file spriteParticleRenderer.cxx. |
|
child dynamic copy
Implements BaseParticleRenderer. Definition at line 102 of file spriteParticleRenderer.cxx. References NodePath::find(), and NodePath::is_empty(). |
|
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(). |
|
big child render. populates the geom node. Definition at line 308 of file spriteParticleRenderer.cxx. References _aabb_max, _aabb_min, _color, Colorf, BaseParticleRenderer::PR_ALPHA_IN, BaseParticleRenderer::PR_ALPHA_NONE, BaseParticleRenderer::PR_ALPHA_OUT, and t. |
|
reallocate the vertex pool.
Implements BaseParticleRenderer. Definition at line 200 of file spriteParticleRenderer.cxx. References _y_texel_array, and G_OVERALL. |
|
Definition at line 224 of file spriteParticleRenderer.I. |
|
Definition at line 235 of file spriteParticleRenderer.I. References _animate_x_ratio, and INLINE. |
|
Definition at line 42 of file baseParticleRenderer.I. References BaseParticleRenderer::_alpha_mode, INLINE, and BaseParticleRenderer::ParticleRendererAlphaMode. |
|
Definition at line 149 of file spriteParticleRenderer.I. References _initial_y_texel_ratio, and INLINE. |
|
Definition at line 98 of file spriteParticleRenderer.I. References _animate_y_ratio, _pool_size, _sprite_primitive, _y_texel_array, PointerToArray< float >::empty_array(), G_OVERALL, G_PER_PRIM, and INLINE. |
|
Definition at line 180 of file spriteParticleRenderer.I. References _blend_method, and INLINE. |
|
Definition at line 202 of file spriteParticleRenderer.I. |
|
Sets the properties on this render from the geometry referenced by the indicated NodePath. This should be a reference to a GeomNode; it extracts out the Texture and UV range from the GeomNode. Definition at line 121 of file spriteParticleRenderer.cxx. |
|
Definition at line 169 of file spriteParticleRenderer.I. |
|
Definition at line 191 of file spriteParticleRenderer.I. References _sprite_primitive. |
|
Sets the UV coordinate of the lower-left corner of all the sprites generated by this renderer. Normally this is (0, 0), but it might be set to something else to use only a portion of the texture. Definition at line 68 of file spriteParticleRenderer.I. |
|
Definition at line 213 of file spriteParticleRenderer.I. |
|
Definition at line 46 of file spriteParticleRenderer.I. References _sprite_primitive, and INLINE. |
|
Sets the UV coordinate of the upper-right corner of all the sprites generated by this renderer. Normally this is (1, 1), but it might be set to something else to use only a portion of the texture. Definition at line 87 of file spriteParticleRenderer.I. |
|
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. |
|
Definition at line 109 of file spriteParticleRenderer.I. |
|
Definition at line 129 of file spriteParticleRenderer.I. |
|
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 77 of file spriteParticleRenderer.h. Referenced by birth_particle(), kill_particle(), and render(). |
|
Definition at line 77 of file spriteParticleRenderer.h. Referenced by birth_particle(), kill_particle(), and 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 73 of file spriteParticleRenderer.h. Referenced by birth_particle(). |
|
Definition at line 72 of file spriteParticleRenderer.h. Referenced by init_geoms(), and set_alpha_disable(). |
|
Definition at line 72 of file spriteParticleRenderer.h. Referenced by get_texture(), init_geoms(), and set_color(). |
|
Definition at line 75 of file spriteParticleRenderer.h. Referenced by get_y_scale_flag(), and set_final_x_scale(). |
|
Definition at line 66 of file spriteParticleRenderer.h. Referenced by render(), set_ll_uv(), and SpriteParticleRenderer(). |
|
Definition at line 61 of file spriteParticleRenderer.h. Referenced by init_geoms(). |
|
Definition at line 68 of file spriteParticleRenderer.h. Referenced by get_ur_uv(). |
|
Definition at line 69 of file spriteParticleRenderer.h. Referenced by SpriteParticleRenderer(). |
|
Definition at line 68 of file spriteParticleRenderer.h. Referenced by get_ll_uv(), and init_geoms(). |
|
Definition at line 69 of file spriteParticleRenderer.h. Referenced by birth_particle(), and set_anim_angle_flag(). |
|
Definition at line 79 of file spriteParticleRenderer.h. Referenced by set_color(). |
|
Definition at line 80 of file spriteParticleRenderer.h. Referenced by get_source_type(). |
|
Definition at line 59 of file spriteParticleRenderer.h. Referenced by get_anim_angle_flag(), get_source_type(), set_color(), set_initial_y_scale(), set_texture(), and SpriteParticleRenderer(). |
|
Definition at line 70 of file spriteParticleRenderer.h. Referenced by birth_particle(), get_x_scale_flag(), set_initial_x_scale(), and SpriteParticleRenderer(). |
|
Definition at line 64 of file spriteParticleRenderer.h. Referenced by init_geoms(). |
|
Definition at line 60 of file spriteParticleRenderer.h. Referenced by init_geoms(). |
|
Definition at line 62 of file spriteParticleRenderer.h. Referenced by init_geoms(). |
|
Definition at line 63 of file spriteParticleRenderer.h. Referenced by init_geoms(), resize_pool(), and set_color(). |