Start a Nif-style particle emitter

Not complete yet (doesn't handle the vertical or horizontal direction/angle),
and should probably be renamed.
This commit is contained in:
Chris Robinson 2013-04-13 14:36:24 -07:00
parent 07c24e0382
commit 7191f6ed2a
5 changed files with 248 additions and 1 deletions

View file

@ -351,7 +351,7 @@ class NIFObjectLoader
static void createParticleEmitterAffectors(Ogre::ParticleSystem *partsys, const Nif::NiParticleSystemController *partctrl)
{
Ogre::ParticleEmitter *emitter = partsys->addEmitter("Point");
Ogre::ParticleEmitter *emitter = partsys->addEmitter("Nif");
emitter->setDirection(Ogre::Vector3(0.0f, 0.0f, std::cos(partctrl->verticalDir)));
emitter->setAngle(Ogre::Radian(partctrl->verticalAngle));
emitter->setParticleVelocity(partctrl->velocity-partctrl->velocityRandom,
@ -359,6 +359,9 @@ class NIFObjectLoader
emitter->setEmissionRate(partctrl->emitRate);
emitter->setTimeToLive(partctrl->lifetime-partctrl->lifetimeRandom,
partctrl->lifetime+partctrl->lifetimeRandom);
emitter->setParameter("width", Ogre::StringConverter::toString(partctrl->offsetRandom.x));
emitter->setParameter("height", Ogre::StringConverter::toString(partctrl->offsetRandom.z));
emitter->setParameter("depth", Ogre::StringConverter::toString(partctrl->offsetRandom.y));
Nif::ExtraPtr e = partctrl->extra;
while(!e.empty())