123
This commit is contained in:
90
CryCommon/CryParticleSpawnInfo.h
Normal file
90
CryCommon/CryParticleSpawnInfo.h
Normal file
@@ -0,0 +1,90 @@
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Crytek Common Source code
|
||||
//
|
||||
// File:CryParticleSpawnInfo.h
|
||||
// Description: declaration of struct CryParticleSpawnInfo.
|
||||
//
|
||||
// History:
|
||||
// -Sep 23, 2002: Created by Sergiy Migdalskiy
|
||||
//
|
||||
// Notes:
|
||||
// 3D Engine and Character Animation subsystems (as well as perhaps
|
||||
// some others) transfer data about the particles that need to be spawned
|
||||
// via this structure. This is to avoid passing many parameters through
|
||||
// each function call, and to save on copying these parameters when just
|
||||
// simply passing the structure from one function to another.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __CRY_COMMON_PARTICLE_SPAWN_INFO_HDR__
|
||||
#define __CRY_COMMON_PARTICLE_SPAWN_INFO_HDR__
|
||||
|
||||
//! Structure containing common parameters describing particle spawning
|
||||
//! This is in addition to the ParticleParams defined in the 3D Engine
|
||||
struct CryParticleSpawnInfo
|
||||
{
|
||||
public:
|
||||
// Particle spawn rate: the number of particles to be spawned
|
||||
// PER SECOND. The number of particles to spawn per Frame is:
|
||||
// fSpawnRate * fFrameDurationSeconds
|
||||
float fSpawnRate;
|
||||
/*
|
||||
// particle spawn mode
|
||||
enum SpawnModeEnum
|
||||
{
|
||||
// rain mode: particles (rain drops) should reflect from the normals
|
||||
// vDir sets the rain direction
|
||||
SPAWN_RAIN = 0,
|
||||
// particles are spawned along normal direction
|
||||
SPAWN_NORMAL,
|
||||
// particles are spawned randomly into the normal hemisphere (randomly, but outside the skin)
|
||||
SPAWN_OUTSIDE,
|
||||
// particles are spawned into the direction of vDir
|
||||
SPAWN_CONST,
|
||||
// particles are spawned absolutely randomly
|
||||
SPAWN_RANDOM
|
||||
};
|
||||
|
||||
SpawnModeEnum nSpawnMode;
|
||||
|
||||
// particle direction
|
||||
Vec3 vDir;
|
||||
*/
|
||||
|
||||
enum FlagEnum
|
||||
{
|
||||
// in this mode, only up-looking normals will be taken into account
|
||||
FLAGS_RAIN_MODE = 1,
|
||||
// with this flag, the spawn will occur only on one frame
|
||||
FLAGS_ONE_TIME_SPAWN = 1 << 1,
|
||||
// with this flag, nBoneId will determine the bone from which the particle will be spawned,
|
||||
// vBonePos will be the position in bone coordinates at which the particles will be spawned
|
||||
FLAGS_SPAWN_FROM_BONE = 1 << 2
|
||||
};
|
||||
|
||||
// flags - combination of FlagEnum flags
|
||||
unsigned nFlags;
|
||||
// valid only with FLAGS_SPAWN_FROM_BONE:
|
||||
// the bone number, can be determined with the ICryCharModel::GetBoneByName(), should be non-negative
|
||||
unsigned nBone;
|
||||
// valid only with FLAGS_SPAWN_FROM_BONE:
|
||||
// the position of the particle in local bone coordinates
|
||||
Vec3 vBonePos;
|
||||
|
||||
CryParticleSpawnInfo():
|
||||
fSpawnRate (0),
|
||||
nFlags (0),
|
||||
nBone (0),
|
||||
vBonePos(0,0,0)
|
||||
{
|
||||
}
|
||||
|
||||
CryParticleSpawnInfo (float _fSpawnRate, unsigned _nFlags = 0):
|
||||
fSpawnRate(_fSpawnRate),
|
||||
nFlags (_nFlags)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user