WoW Model Viewer
Your premiere tool for viewing, equipping and animating World of Warcraft models.
Loading...
Searching...
No Matches
ParticleSystem Class Reference

M2 particle system — manages emission, simulation, and rendering of particles. More...

#include <particle.h>

Collaboration diagram for ParticleSystem:
[legend]

Public Types

typedef std::vector< glm::vec4 > particleColorSet
 

Public Member Functions

 ParticleSystem ()
 
 ~ParticleSystem ()
 
void init (GameFile *f, M2ParticleDef &mta, std::vector< uint32 > &globals)
 
void update (float dt)
 
void setup (size_t anim, size_t time)
 
void draw ()
 

Static Public Member Functions

static void useDoNotTrailInfo ()
 

Public Attributes

int blend
 
WoWModelmodel
 
float tofs
 
Animated< uint16enabled
 
Animated< float > speed
 
Animated< float > variation
 
Animated< float > spread
 
Animated< float > lat
 
Animated< float > gravity
 
Animated< float > lifespan
 
Animated< float > rate
 
Animated< float > areal
 
Animated< float > areaw
 
glm::vec4 colors [3]
 
float sizes [3]
 
bool multitexture
 
bool doNotTrail
 
int particleColID
 
bool replaceParticleColors
 
std::vector< particleColorSetparticleColorReplacements
 

Static Public Attributes

static bool useDoNotTrail = false
 

Private Member Functions

void initTile (glm::vec2 *tc, int num)
 

Private Attributes

float mid
 
float slowdown
 
float rotation
 
glm::vec3 pos
 
glm::vec3 tpos
 
GLuint texture
 
GLuint texture2
 
GLuint texture3
 
ParticleEmitteremitter
 
ParticleList particles
 
int order
 
int ParticleType
 
size_t manim
 
size_t mtime
 
int rows
 
int cols
 
std::vector< TexCoordSettiles
 
bool billboard
 
float rem
 
int32 flags
 
int16 EmitterType
 
Boneparent
 

Friends

class PlaneParticleEmitter
 
class SphereParticleEmitter
 
std::ostream & operator<< (std::ostream &out, const ParticleSystem &v)
 

Detailed Description

M2 particle system — manages emission, simulation, and rendering of particles.

Definition at line 76 of file particle.h.

Member Typedef Documentation

◆ particleColorSet

typedef std::vector<glm::vec4> ParticleSystem::particleColorSet

Definition at line 110 of file particle.h.

Constructor & Destructor Documentation

◆ ParticleSystem()

ParticleSystem::ParticleSystem ( )
inline

Definition at line 115 of file particle.h.

◆ ~ParticleSystem()

ParticleSystem::~ParticleSystem ( )
inline

Definition at line 134 of file particle.h.

Member Function Documentation

◆ draw()

void ParticleSystem::draw ( )

Definition at line 289 of file particle.cpp.

◆ init()

void ParticleSystem::init ( GameFile f,
M2ParticleDef mta,
std::vector< uint32 > &  globals 
)

Definition at line 28 of file particle.cpp.

Here is the call graph for this function:

◆ initTile()

void ParticleSystem::initTile ( glm::vec2 *  tc,
int  num 
)
private

Definition at line 124 of file particle.cpp.

Here is the caller graph for this function:

◆ setup()

void ParticleSystem::setup ( size_t  anim,
size_t  time 
)

Definition at line 269 of file particle.cpp.

◆ update()

void ParticleSystem::update ( float  dt)

Definition at line 148 of file particle.cpp.

Here is the call graph for this function:

◆ useDoNotTrailInfo()

static void ParticleSystem::useDoNotTrailInfo ( )
inlinestatic

Definition at line 177 of file particle.h.

Friends And Related Symbol Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  out,
const ParticleSystem v 
)
friend

Definition at line 146 of file particle.h.

◆ PlaneParticleEmitter

friend class PlaneParticleEmitter
friend

Definition at line 142 of file particle.h.

◆ SphereParticleEmitter

friend class SphereParticleEmitter
friend

Definition at line 143 of file particle.h.

Member Data Documentation

◆ areal

Animated<float> ParticleSystem::areal

Definition at line 101 of file particle.h.

◆ areaw

Animated<float> ParticleSystem::areaw

Definition at line 101 of file particle.h.

◆ billboard

bool ParticleSystem::billboard
private

Definition at line 88 of file particle.h.

◆ blend

int ParticleSystem::blend

Definition at line 97 of file particle.h.

◆ colors

glm::vec4 ParticleSystem::colors[3]

Definition at line 103 of file particle.h.

◆ cols

int ParticleSystem::cols
private

Definition at line 85 of file particle.h.

◆ doNotTrail

bool ParticleSystem::doNotTrail

Definition at line 105 of file particle.h.

◆ emitter

ParticleEmitter* ParticleSystem::emitter
private

Definition at line 81 of file particle.h.

◆ EmitterType

int16 ParticleSystem::EmitterType
private

Definition at line 93 of file particle.h.

◆ enabled

Animated<uint16> ParticleSystem::enabled

Definition at line 100 of file particle.h.

◆ flags

int32 ParticleSystem::flags
private

Definition at line 92 of file particle.h.

◆ gravity

Animated<float> ParticleSystem::gravity

Definition at line 101 of file particle.h.

◆ lat

Animated<float> ParticleSystem::lat

Definition at line 101 of file particle.h.

◆ lifespan

Animated<float> ParticleSystem::lifespan

Definition at line 101 of file particle.h.

◆ manim

size_t ParticleSystem::manim
private

Definition at line 84 of file particle.h.

◆ mid

float ParticleSystem::mid
private

Definition at line 78 of file particle.h.

◆ model

WoWModel* ParticleSystem::model

Definition at line 98 of file particle.h.

◆ mtime

size_t ParticleSystem::mtime
private

Definition at line 84 of file particle.h.

◆ multitexture

bool ParticleSystem::multitexture

Definition at line 105 of file particle.h.

◆ order

int ParticleSystem::order
private

Definition at line 83 of file particle.h.

◆ parent

Bone* ParticleSystem::parent
private

Definition at line 94 of file particle.h.

◆ particleColID

int ParticleSystem::particleColID

Definition at line 106 of file particle.h.

◆ particleColorReplacements

std::vector<particleColorSet> ParticleSystem::particleColorReplacements

Definition at line 113 of file particle.h.

◆ particles

ParticleList ParticleSystem::particles
private

Definition at line 82 of file particle.h.

◆ ParticleType

int ParticleSystem::ParticleType
private

Definition at line 83 of file particle.h.

◆ pos

glm::vec3 ParticleSystem::pos
private

Definition at line 79 of file particle.h.

◆ rate

Animated<float> ParticleSystem::rate

Definition at line 101 of file particle.h.

◆ rem

float ParticleSystem::rem
private

Definition at line 89 of file particle.h.

◆ replaceParticleColors

bool ParticleSystem::replaceParticleColors

Definition at line 107 of file particle.h.

◆ rotation

float ParticleSystem::rotation
private

Definition at line 78 of file particle.h.

◆ rows

int ParticleSystem::rows
private

Definition at line 85 of file particle.h.

◆ sizes

float ParticleSystem::sizes[3]

Definition at line 104 of file particle.h.

◆ slowdown

float ParticleSystem::slowdown
private

Definition at line 78 of file particle.h.

◆ speed

Animated<float> ParticleSystem::speed

Definition at line 101 of file particle.h.

◆ spread

Animated<float> ParticleSystem::spread

Definition at line 101 of file particle.h.

◆ texture

GLuint ParticleSystem::texture
private

Definition at line 80 of file particle.h.

◆ texture2

GLuint ParticleSystem::texture2
private

Definition at line 80 of file particle.h.

◆ texture3

GLuint ParticleSystem::texture3
private

Definition at line 80 of file particle.h.

◆ tiles

std::vector<TexCoordSet> ParticleSystem::tiles
private

Definition at line 86 of file particle.h.

◆ tofs

float ParticleSystem::tofs

Definition at line 99 of file particle.h.

◆ tpos

glm::vec3 ParticleSystem::tpos
private

Definition at line 79 of file particle.h.

◆ useDoNotTrail

bool ParticleSystem::useDoNotTrail = false
static

Definition at line 182 of file particle.h.

◆ variation

Animated<float> ParticleSystem::variation

Definition at line 101 of file particle.h.


The documentation for this class was generated from the following files: