7 #ifndef PARTICLE_SERVICES_H
8 #define PARTICLE_SERVICES_H
82 LWPSysID
getID()
const {
return prtsv_id; }
105 LWPSysID
create (
int flags,
int type = LWPST_PRTCL)
107 prtsv_id =
globPtr->create(flags, type);
112 if (flags & LWPSB_POS) { posbf_id =
getBufferID(LWPSB_POS); }
114 if (flags & LWPSB_SIZ) { sizbf_id =
getBufferID(LWPSB_SIZ); }
116 if (flags & LWPSB_SCL) { sclbf_id =
getBufferID(LWPSB_SCL); }
118 if (flags & LWPSB_ROT) { rotbf_id =
getBufferID(LWPSB_ROT); }
120 if (flags & LWPSB_VEL) { velbf_id =
getBufferID(LWPSB_VEL); }
122 if (flags & LWPSB_AGE) { agebf_id =
getBufferID(LWPSB_AGE); }
124 if (flags & LWPSB_FCE) { frcbf_id =
getBufferID(LWPSB_FCE); }
126 if (flags & LWPSB_PRS) { prsbf_id =
getBufferID(LWPSB_PRS); }
128 if (flags & LWPSB_TMP) { tmpbf_id =
getBufferID(LWPSB_TMP); }
130 if (flags & LWPSB_MAS) { masbf_id =
getBufferID(LWPSB_MAS); }
133 if (flags & LWPSB_TMP || type == LWPST_TRAIL ) { lnkbf_id =
getBufferID(LWPSB_TMP); }
135 if (flags & LWPSB_ID) { pidbf_id =
getBufferID(LWPSB_ID); }
137 if (flags & LWPSB_ENB) { enbbf_id =
getBufferID(LWPSB_ENB); }
139 if (flags & LWPSB_RGBA) { rgbabf_id =
getBufferID(LWPSB_RGBA); }
141 if (flags & LWPSB_CAGE) { cagebf_id =
getBufferID(LWPSB_CAGE); }
143 if (flags & LWPSB_RAGE) { ragebf_id =
getBufferID(LWPSB_RAGE); }
145 if (flags & LWPSB_POS0) { sposbf_id =
getBufferID(LWPSB_POS0); }
147 if (flags & LWPSB_SCL0) { ssclbf_id =
getBufferID(LWPSB_SCL0); }
149 if (flags & LWPSB_ROT0) { ssclbf_id = srotbf_id =
getBufferID(LWPSB_ROT0); }
158 int init (
int num_particles) {
return globPtr->init(prtsv_id, num_particles); }
164 void load ( LWLoadState *loadstate ) {
globPtr->load(prtsv_id, loadstate); }
167 void save ( LWSaveState *savestate ) {
globPtr->save(prtsv_id, savestate); }
209 LWPSBufID
addBuffer (LWPSBufDesc lwbufdesc) {
return globPtr->addBuf(prtsv_id, lwbufdesc); }
222 template <
typename T>
231 template <
typename T>
240 void setParticle (LWPSBufID buffer_id,
int index,
void *data) {
globPtr->setParticle(buffer_id, index, data); }
245 void getParticle (LWPSBufID buffer_id,
int index,
void *data) {
globPtr->getParticle(buffer_id, index, data); }
266 float position[3] = { 0, 0, 0 };
283 float fposition[3] = { (float) position.
x, (
float) position.
y, (float) position.
z };
472 char state = (char) LWPST_DEAD;
481 char state = (char) LWPST_ALIVE;
490 char state = (char) LWPST_LIMBO;
500 return ( isdead == LWPST_DEAD) ?
true : false ;
509 return ( isalive == LWPST_ALIVE) ?
true : false ;
518 return ( islimbo == LWPST_LIMBO) ?
true : false ;
609 #endif // PARTICLE_SERVICES_H