hoa_video::private_video::ParticleSystemDef Class Reference

#include <particle_system.h>

Collaboration diagram for hoa_video::private_video::ParticleSystemDef:

Collaboration graph
[legend]
List of all members.

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< int32animation_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

Detailed Description

Definition at line 62 of file particle_system.h.


Member Data Documentation

float hoa_video::private_video::ParticleSystemDef::acceleration_variation_x

Definition at line 110 of file particle_system.h.

Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().

float hoa_video::private_video::ParticleSystemDef::acceleration_variation_y

Definition at line 111 of file particle_system.h.

Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().

float hoa_video::private_video::ParticleSystemDef::acceleration_x

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().

float hoa_video::private_video::ParticleSystemDef::acceleration_y

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().

std::vector<int32> hoa_video::private_video::ParticleSystemDef::animation_frame_times

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().

float hoa_video::private_video::ParticleSystemDef::attractor_falloff

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().

int32 hoa_video::private_video::ParticleSystemDef::blend_mode

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().

float hoa_video::private_video::ParticleSystemDef::damping

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().

float hoa_video::private_video::ParticleSystemDef::damping_variation

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().

ParticleEmitter hoa_video::private_video::ParticleSystemDef::emitter

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().

bool hoa_video::private_video::ParticleSystemDef::enabled

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().

std::vector<ParticleKeyframe *> hoa_video::private_video::ParticleSystemDef::keyframes

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().

int32 hoa_video::private_video::ParticleSystemDef::max_particles

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().

float hoa_video::private_video::ParticleSystemDef::max_speed_scale

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().

float hoa_video::private_video::ParticleSystemDef::min_speed_scale

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().

bool hoa_video::private_video::ParticleSystemDef::modify_stencil

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().

float hoa_video::private_video::ParticleSystemDef::particle_lifetime

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().

float hoa_video::private_video::ParticleSystemDef::particle_lifetime_variation

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().

float hoa_video::private_video::ParticleSystemDef::radial_acceleration

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().

float hoa_video::private_video::ParticleSystemDef::radial_acceleration_variation

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().

bool hoa_video::private_video::ParticleSystemDef::random_initial_angle

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().

bool hoa_video::private_video::ParticleSystemDef::rotate_to_velocity

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().

bool hoa_video::private_video::ParticleSystemDef::rotation_used

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().

float hoa_video::private_video::ParticleSystemDef::scene_lighting

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().

bool hoa_video::private_video::ParticleSystemDef::smooth_animation

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().

float hoa_video::private_video::ParticleSystemDef::speed_scale

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().

bool hoa_video::private_video::ParticleSystemDef::speed_scale_used

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().

VIDEO_STENCIL_OP hoa_video::private_video::ParticleSystemDef::stencil_op

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().

float hoa_video::private_video::ParticleSystemDef::system_lifetime

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().

float hoa_video::private_video::ParticleSystemDef::tangential_acceleration

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().

float hoa_video::private_video::ParticleSystemDef::tangential_acceleration_variation

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().

bool hoa_video::private_video::ParticleSystemDef::use_stencil

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().

bool hoa_video::private_video::ParticleSystemDef::user_defined_attractor

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().

float hoa_video::private_video::ParticleSystemDef::wave_amplitude

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().

float hoa_video::private_video::ParticleSystemDef::wave_amplitude_variation

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().

float hoa_video::private_video::ParticleSystemDef::wave_length

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().

float hoa_video::private_video::ParticleSystemDef::wave_length_variation

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().

bool hoa_video::private_video::ParticleSystemDef::wave_motion_used

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().

float hoa_video::private_video::ParticleSystemDef::wind_velocity_variation_x

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().

float hoa_video::private_video::ParticleSystemDef::wind_velocity_variation_y

Definition at line 119 of file particle_system.h.

Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().

float hoa_video::private_video::ParticleSystemDef::wind_velocity_x

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().

float hoa_video::private_video::ParticleSystemDef::wind_velocity_y

Definition at line 115 of file particle_system.h.

Referenced by hoa_video::private_video::ParticleSystem::_RespawnParticle(), and hoa_video::private_video::TEMP_LoadEffectHelper().


The documentation for this class was generated from the following file:
Generated on Fri Jul 6 23:16:52 2007 for Hero of Allacrost by  doxygen 1.5.1