#include <particle_system.h>
Collaboration diagram for hoa_video::private_video::ParticleSystemDef:

Public Attributes | |
| float | acceleration_variation_x |
| float | acceleration_variation_y |
| float | acceleration_x |
| float | acceleration_y |
| std::vector< std::string > | animation_frame_filenames |
| Array of filenames for each frame of animation. | |
| std::vector< int32 > | animation_frame_times |
| Array telling how long each animation should last for. | |
| float | attractor_falloff |
| int32 | blend_mode |
| float | damping |
| float | damping_variation |
| Random variation added to damping. | |
| ParticleEmitter | emitter |
| bool | enabled |
| Is this system supposed to be displayed. | |
| std::vector< ParticleKeyframe * > | keyframes |
| int32 | max_particles |
| Maximum number of particles this system can have at one time. | |
| float | max_speed_scale |
| float | min_speed_scale |
| bool | modify_stencil |
| float | particle_lifetime |
| How long each particle should live for before it dies. | |
| float | particle_lifetime_variation |
| Random variation added to particle lifetime. | |
| float | radial_acceleration |
| float | radial_acceleration_variation |
| radial acceleration variation | |
| bool | random_initial_angle |
| bool | rotate_to_velocity |
| bool | rotation_used |
| float | scene_lighting |
| bool | smooth_animation |
| float | speed_scale |
| bool | speed_scale_used |
| VIDEO_STENCIL_OP | stencil_op |
| float | system_lifetime |
| float | tangential_acceleration |
| float | tangential_acceleration_variation |
| tangential acceleration variation | |
| bool | use_stencil |
| bool | user_defined_attractor |
| float | wave_amplitude |
| wave amplitude- the distance from the peak to the bottom of the sinusoidal curve | |
| float | wave_amplitude_variation |
| Random variation added to wave amplitude. | |
| float | wave_length |
| float | wave_length_variation |
| Random variation added to wave length. | |
| bool | wave_motion_used |
| true if we should use wave motion for this system | |
| float | wind_velocity_variation_x |
| wind velocity variation | |
| float | wind_velocity_variation_y |
| float | wind_velocity_x |
| wind velocity, more generally any velocity which is added to each particle's velocity | |
| float | wind_velocity_y |
Definition at line 62 of file particle_system.h.
Definition at line 110 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
Definition at line 111 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
constant acceleration, good example is gravity. Note that down is in the positive y direction since we are using screen coordinates
Definition at line 107 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
Definition at line 108 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
| std::vector<std::string> hoa_video::private_video::ParticleSystemDef::animation_frame_filenames |
Array of filenames for each frame of animation.
Definition at line 230 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::Create(), and hoa_video::private_video::TEMP_LoadEffectHelper().
Array telling how long each animation should last for.
Definition at line 226 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::Create(), and hoa_video::private_video::TEMP_LoadEffectHelper().
how quickly the "pull" of an attractor falls off as a particle gets further away from it. For example if falloff is 10^-3, and a particle is 500 pixels away from the attractor, then the radial acceleration is lessened by (500 * 10^-3) = .5, or 50%
Definition at line 158 of file particle_system.h.
Referenced by hoa_video::private_video::TEMP_LoadEffectHelper().
How to blend the particles: VIDEO_NO_BLEND, VIDEO_BLEND, or VIDEO_BLEND_ADD For most effects, we want VIDEO_BLEND_ADD
Definition at line 80 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::Draw(), and hoa_video::private_video::TEMP_LoadEffectHelper().
A number below 1.0 (but generally pretty close to 1.0). A damp of .99 means that each second, particle velocity drops by 1%
Definition at line 100 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
Random variation added to damping.
Definition at line 103 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
Each system contains 1 emitter, which mainly determines where to shoot particles out from and how fast to shoot them out
Definition at line 72 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), hoa_video::private_video::TEMP_LoadEffectHelper(), and hoa_video::private_video::ParticleSystem::Update().
Is this system supposed to be displayed.
Definition at line 68 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::Draw(), hoa_video::private_video::ParticleSystem::IsAlive(), hoa_video::private_video::TEMP_LoadEffectHelper(), and hoa_video::private_video::ParticleSystem::Update().
Array of keyframes, which specify how particle properties vary over time. This array must contain at least 1 keyframe (in that case, the properties are all held constant)
Definition at line 76 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), hoa_video::private_video::ParticleSystem::_UpdateParticles(), and hoa_video::private_video::TEMP_LoadEffectHelper().
Maximum number of particles this system can have at one time.
Definition at line 96 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::Create(), hoa_video::private_video::TEMP_LoadEffectHelper(), and hoa_video::private_video::ParticleSystem::Update().
if you use speed_scale, this can cause particles to become extremely large at high speeds this variable allows you to set a maximum bound on the scaling due to speed
Definition at line 189 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::Draw(), and hoa_video::private_video::TEMP_LoadEffectHelper().
if you use speed_scale, this can cause particles to become extremely tiny at low speeds this variable allows you to set a minimum bound on the scaling due to speed
Definition at line 184 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::Draw(), and hoa_video::private_video::TEMP_LoadEffectHelper().
True if this system should not actually write to the screen, but instead modify the stencil buffer. Every time a pixel passes the alpha test, the stencil buffer will be modified, according to _stencil_op
Definition at line 199 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::Draw(), and hoa_video::private_video::TEMP_LoadEffectHelper().
How long each particle should live for before it dies.
Definition at line 90 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
Random variation added to particle lifetime.
Definition at line 93 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
radial acceleration. Positive means particles accelerate away from the emitter, negative means they accelerate back towards it
Definition at line 146 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
radial acceleration variation
Definition at line 149 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
true if particles' initial angle should be randomized. If false, then all particles have an angle of zero when they spawn
Definition at line 222 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
True if you want particles to rotate to face the same direction they are going. So for example a particle going straight up will not be rotated, but a particle that is going 45 degrees northeast will be rotated 45 degrees clockwise
Definition at line 169 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::Draw(), and hoa_video::private_video::TEMP_LoadEffectHelper().
True if ANY of the keyframes for the particles contain non-zero rotations This is used by the Draw() function so it knows whether it needs to factor in rotations when determining the particle vertices (since this adds a lot of extra computation)
Definition at line 164 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::Draw(), and hoa_video::private_video::TEMP_LoadEffectHelper().
Value from 0 to 1.0f, tells how strongly to modulate the particle colors by the scene lighting. If 0, then it's not weighted at all. If 1, then we multiply the particle color by the scene lighting. If it's somewhere between 0 and 1, then we calculate a color which is somewhere between white and the scene lighting color, and modulate with that.
Definition at line 217 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::Draw(), and hoa_video::private_video::TEMP_LoadEffectHelper().
True if alpha blending should be used to create smooth transitions between animation frames
Definition at line 194 of file particle_system.h.
Referenced by hoa_video::private_video::TEMP_LoadEffectHelper().
this number is multiplied by a particle's speed to come up with a scale of how much to stretch a particle in its direction of motion
Definition at line 179 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::Draw(), and hoa_video::private_video::TEMP_LoadEffectHelper().
true if speed scaling is used. Note that speed scaling can only be used if rotate to velocity is also used.
Definition at line 174 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::Draw(), and hoa_video::private_video::TEMP_LoadEffectHelper().
if modify stencil is true, then the operation to use when the alpha test passes can either be VIDEO_STENCIL_OP_INCREASE, VIDEO_STENCIL_OP_ONE, VIDEO_STENCIL_OP_ZERO, or VIDEO_STENCIL_OP_DECREASE. The stencil test we use is "equal to 1"
Definition at line 205 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::Draw(), and hoa_video::private_video::TEMP_LoadEffectHelper().
How many seconds the system should live for before it dies out. This is only meaningful if our emitter mode is EMITTER_MODE_ONE_SHOT. The other modes will simply keep playing until the effect is destroyed or stopped, except for EMITTER_MODE_BURST, which spits out a bunch of particles at the beginning and then dies as soon as all of those particles die
Definition at line 87 of file particle_system.h.
Referenced by hoa_video::private_video::TEMP_LoadEffectHelper(), and hoa_video::private_video::ParticleSystem::Update().
tangential acceleration, how particle accelerates tangential to vector from particle to center of emitter region. Positive is clockwise.
Definition at line 139 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
tangential acceleration variation
Definition at line 142 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
if this is true, then we only draw in areas where the stencil buffer contains a 1. Note that _use_stencil and _modify_stencil cannot both be 1 at the same time
Definition at line 210 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::Draw(), and hoa_video::private_video::TEMP_LoadEffectHelper().
if true, we use a user defined attractor instead of the emitter position for radial acceleration. The user defined attractor is set using ParticleEffect::SetAttractorPoint()
Definition at line 153 of file particle_system.h.
Referenced by hoa_video::private_video::TEMP_LoadEffectHelper().
wave amplitude- the distance from the peak to the bottom of the sinusoidal curve
Definition at line 132 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
Random variation added to wave amplitude.
Definition at line 135 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
wavelength. For example a wavelength of 5 means that it takes 5 seconds to go from one point on the sinusoidal curve to the next
Definition at line 126 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
Random variation added to wave length.
Definition at line 129 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
true if we should use wave motion for this system
Definition at line 122 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
wind velocity variation
Definition at line 118 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
Definition at line 119 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
wind velocity, more generally any velocity which is added to each particle's velocity
Definition at line 114 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
Definition at line 115 of file particle_system.h.
Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().
1.5.1