//--------------------------------------------------------------------- void ParticleFXPlugin::install() { // -- Create all new particle emitter factories -- ParticleEmitterFactory* pEmitFact; // PointEmitter pEmitFact = OGRE_NEW PointEmitterFactory(); ParticleSystemManager::getSingleton().addEmitterFactory(pEmitFact); mEmitterFactories.push_back(pEmitFact); // BoxEmitter pEmitFact = OGRE_NEW BoxEmitterFactory(); ParticleSystemManager::getSingleton().addEmitterFactory(pEmitFact); mEmitterFactories.push_back(pEmitFact); // EllipsoidEmitter pEmitFact = OGRE_NEW EllipsoidEmitterFactory(); ParticleSystemManager::getSingleton().addEmitterFactory(pEmitFact); mEmitterFactories.push_back(pEmitFact); // CylinderEmitter pEmitFact = OGRE_NEW CylinderEmitterFactory(); ParticleSystemManager::getSingleton().addEmitterFactory(pEmitFact); mEmitterFactories.push_back(pEmitFact); // RingEmitter pEmitFact = OGRE_NEW RingEmitterFactory(); ParticleSystemManager::getSingleton().addEmitterFactory(pEmitFact); mEmitterFactories.push_back(pEmitFact); // HollowEllipsoidEmitter pEmitFact = OGRE_NEW HollowEllipsoidEmitterFactory(); ParticleSystemManager::getSingleton().addEmitterFactory(pEmitFact); mEmitterFactories.push_back(pEmitFact); // -- Create all new particle affector factories -- ParticleAffectorFactory* pAffFact; // LinearForceAffector pAffFact = OGRE_NEW LinearForceAffectorFactory(); ParticleSystemManager::getSingleton().addAffectorFactory(pAffFact); mAffectorFactories.push_back(pAffFact); // ColourFaderAffector pAffFact = OGRE_NEW ColourFaderAffectorFactory(); ParticleSystemManager::getSingleton().addAffectorFactory(pAffFact); mAffectorFactories.push_back(pAffFact); // ColourFaderAffector2 pAffFact = OGRE_NEW ColourFaderAffectorFactory2(); ParticleSystemManager::getSingleton().addAffectorFactory(pAffFact); mAffectorFactories.push_back(pAffFact); // ColourImageAffector pAffFact = OGRE_NEW ColourImageAffectorFactory(); ParticleSystemManager::getSingleton().addAffectorFactory(pAffFact); mAffectorFactories.push_back(pAffFact); // ColourInterpolatorAffector pAffFact = OGRE_NEW ColourInterpolatorAffectorFactory(); ParticleSystemManager::getSingleton().addAffectorFactory(pAffFact); mAffectorFactories.push_back(pAffFact); // ScaleAffector pAffFact = OGRE_NEW ScaleAffectorFactory(); ParticleSystemManager::getSingleton().addAffectorFactory(pAffFact); mAffectorFactories.push_back(pAffFact); // RotationAffector pAffFact = OGRE_NEW RotationAffectorFactory(); ParticleSystemManager::getSingleton().addAffectorFactory(pAffFact); mAffectorFactories.push_back(pAffFact); // DirectionRandomiserAffector pAffFact = OGRE_NEW DirectionRandomiserAffectorFactory(); ParticleSystemManager::getSingleton().addAffectorFactory(pAffFact); mAffectorFactories.push_back(pAffFact); // DeflectorPlaneAffector pAffFact = OGRE_NEW DeflectorPlaneAffectorFactory(); ParticleSystemManager::getSingleton().addAffectorFactory(pAffFact); mAffectorFactories.push_back(pAffFact); }
//--------------------------------------------------------------------- void ParticleUniversePlugin::install() { #ifdef PU_PHYSICS_PHYSX // ----------------------- Create the PhysXBridge ----------------------- mPhysXBridge = PU_NEW_T(PhysXBridge, MEMCATEGORY_SCENE_CONTROL)(); #endif // PU_PHYSICS_PHYSX // ----------------------- Create the particle system manager ----------------------- mParticleSystemManager = PU_NEW_T(ParticleSystemManager, MEMCATEGORY_SCENE_CONTROL)(); #ifdef CN_MODIFY // ----------------------- Create the particle Renderer Manager ---------------------- mParticleRendererManager = PU_NEW_T(ParticleRendererManager, MEMCATEGORY_SCENE_CONTROL)(); #endif // ----------------------- Create renderer factories ----------------------- ParticleRendererFactory* particleRendererFactory; particleRendererFactory = PU_NEW BeamRendererFactory(); mParticleSystemManager->addRendererFactory(particleRendererFactory); mRendererFactories.push_back(particleRendererFactory); particleRendererFactory = PU_NEW BillboardRendererFactory(); mParticleSystemManager->addRendererFactory(particleRendererFactory); mRendererFactories.push_back(particleRendererFactory); particleRendererFactory = PU_NEW BoxRendererFactory(); mParticleSystemManager->addRendererFactory(particleRendererFactory); mRendererFactories.push_back(particleRendererFactory); particleRendererFactory = PU_NEW SphereRendererFactory(); mParticleSystemManager->addRendererFactory(particleRendererFactory); mRendererFactories.push_back(particleRendererFactory); particleRendererFactory = PU_NEW EntityRendererFactory(); mParticleSystemManager->addRendererFactory(particleRendererFactory); mRendererFactories.push_back(particleRendererFactory); particleRendererFactory = PU_NEW RibbonTrailRendererFactory(); mParticleSystemManager->addRendererFactory(particleRendererFactory); mRendererFactories.push_back(particleRendererFactory); particleRendererFactory = PU_NEW LightRendererFactory(); mParticleSystemManager->addRendererFactory(particleRendererFactory); mRendererFactories.push_back(particleRendererFactory); // ----------------------- Create emitter factories ----------------------- ParticleEmitterFactory* particleEmitterFactory; particleEmitterFactory = PU_NEW PointEmitterFactory(); mParticleSystemManager->addEmitterFactory(particleEmitterFactory); mEmitterFactories.push_back(particleEmitterFactory); particleEmitterFactory = PU_NEW LineEmitterFactory(); mParticleSystemManager->addEmitterFactory(particleEmitterFactory); mEmitterFactories.push_back(particleEmitterFactory); particleEmitterFactory = PU_NEW BoxEmitterFactory(); mParticleSystemManager->addEmitterFactory(particleEmitterFactory); mEmitterFactories.push_back(particleEmitterFactory); particleEmitterFactory = PU_NEW CircleEmitterFactory(); mParticleSystemManager->addEmitterFactory(particleEmitterFactory); mEmitterFactories.push_back(particleEmitterFactory); particleEmitterFactory = PU_NEW SphereSurfaceEmitterFactory(); mParticleSystemManager->addEmitterFactory(particleEmitterFactory); mEmitterFactories.push_back(particleEmitterFactory); particleEmitterFactory = PU_NEW VertexEmitterFactory(); mParticleSystemManager->addEmitterFactory(particleEmitterFactory); mEmitterFactories.push_back(particleEmitterFactory); particleEmitterFactory = PU_NEW MeshSurfaceEmitterFactory(); mParticleSystemManager->addEmitterFactory(particleEmitterFactory); mEmitterFactories.push_back(particleEmitterFactory); particleEmitterFactory = PU_NEW PositionEmitterFactory(); mParticleSystemManager->addEmitterFactory(particleEmitterFactory); mEmitterFactories.push_back(particleEmitterFactory); particleEmitterFactory = PU_NEW SlaveEmitterFactory(); mParticleSystemManager->addEmitterFactory(particleEmitterFactory); mEmitterFactories.push_back(particleEmitterFactory); // ----------------------- Create affector factories ----------------------- ParticleAffectorFactory* particleAffectorFactory; particleAffectorFactory = PU_NEW BaseForceAffectorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW LinearForceAffectorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW GravityAffectorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW ParticleFollowerFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW VortexAffectorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW RandomiserFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW LineAffectorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW ScaleAffectorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW ScaleVelocityAffectorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW GeometryRotatorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW TextureRotatorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW TextureAnimatorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW JetAffectorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW AlignAffectorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW FlockCenteringAffectorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW CollisionAvoidanceAffectorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW VelocityMatchingAffectorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW ColourAffectorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW SineForceAffectorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW BaseColliderFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW SphereColliderFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW PlaneColliderFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW BoxColliderFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW InterParticleColliderFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW PathFollowerFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); particleAffectorFactory = PU_NEW ForceFieldAffectorFactory(); mParticleSystemManager->addAffectorFactory(particleAffectorFactory); mAffectorFactories.push_back(particleAffectorFactory); // ----------------------- Create observer factories ----------------------- ParticleObserverFactory* particleObserverFactory; particleObserverFactory = PU_NEW OnExpireObserverFactory(); mParticleSystemManager->addObserverFactory(particleObserverFactory); mObserverFactories.push_back(particleObserverFactory); particleObserverFactory = PU_NEW OnEmissionObserverFactory(); mParticleSystemManager->addObserverFactory(particleObserverFactory); mObserverFactories.push_back(particleObserverFactory); particleObserverFactory = PU_NEW OnCountObserverFactory(); mParticleSystemManager->addObserverFactory(particleObserverFactory); mObserverFactories.push_back(particleObserverFactory); particleObserverFactory = PU_NEW OnEventFlagObserverFactory(); mParticleSystemManager->addObserverFactory(particleObserverFactory); mObserverFactories.push_back(particleObserverFactory); particleObserverFactory = PU_NEW OnCollisionObserverFactory(); mParticleSystemManager->addObserverFactory(particleObserverFactory); mObserverFactories.push_back(particleObserverFactory); particleObserverFactory = PU_NEW OnVelocityObserverFactory(); mParticleSystemManager->addObserverFactory(particleObserverFactory); mObserverFactories.push_back(particleObserverFactory); particleObserverFactory = PU_NEW OnTimeObserverFactory(); mParticleSystemManager->addObserverFactory(particleObserverFactory); mObserverFactories.push_back(particleObserverFactory); particleObserverFactory = PU_NEW OnPositionObserverFactory(); mParticleSystemManager->addObserverFactory(particleObserverFactory); mObserverFactories.push_back(particleObserverFactory); particleObserverFactory = PU_NEW OnClearObserverFactory(); mParticleSystemManager->addObserverFactory(particleObserverFactory); mObserverFactories.push_back(particleObserverFactory); particleObserverFactory = PU_NEW OnQuotaObserverFactory(); mParticleSystemManager->addObserverFactory(particleObserverFactory); mObserverFactories.push_back(particleObserverFactory); particleObserverFactory = PU_NEW OnRandomObserverFactory(); mParticleSystemManager->addObserverFactory(particleObserverFactory); mObserverFactories.push_back(particleObserverFactory); // ----------------------- Create event handler factories ----------------------- ParticleEventHandlerFactory* particleEventHandlerFactory; particleEventHandlerFactory = PU_NEW DoExpireEventHandlerFactory(); mParticleSystemManager->addEventHandlerFactory(particleEventHandlerFactory); mEventHandlerFactories.push_back(particleEventHandlerFactory); particleEventHandlerFactory = PU_NEW DoFreezeEventHandlerFactory(); mParticleSystemManager->addEventHandlerFactory(particleEventHandlerFactory); mEventHandlerFactories.push_back(particleEventHandlerFactory); particleEventHandlerFactory = PU_NEW DoPlacementParticleEventHandlerFactory(); mParticleSystemManager->addEventHandlerFactory(particleEventHandlerFactory); mEventHandlerFactories.push_back(particleEventHandlerFactory); particleEventHandlerFactory = PU_NEW DoStopSystemEventHandlerFactory(); mParticleSystemManager->addEventHandlerFactory(particleEventHandlerFactory); mEventHandlerFactories.push_back(particleEventHandlerFactory); particleEventHandlerFactory = PU_NEW DoEnableComponentEventHandlerFactory(); mParticleSystemManager->addEventHandlerFactory(particleEventHandlerFactory); mEventHandlerFactories.push_back(particleEventHandlerFactory); particleEventHandlerFactory = PU_NEW DoAffectorEventHandlerFactory(); mParticleSystemManager->addEventHandlerFactory(particleEventHandlerFactory); mEventHandlerFactories.push_back(particleEventHandlerFactory); particleEventHandlerFactory = PU_NEW DoScaleEventHandlerFactory(); mParticleSystemManager->addEventHandlerFactory(particleEventHandlerFactory); mEventHandlerFactories.push_back(particleEventHandlerFactory); // ----------------------- Create extern factories ----------------------- ExternFactory* externFactory; externFactory = PU_NEW GravityExternFactory(); mParticleSystemManager->addExternFactory(externFactory); mExternFactories.push_back(externFactory); externFactory = PU_NEW SphereColliderExternFactory(); mParticleSystemManager->addExternFactory(externFactory); mExternFactories.push_back(externFactory); externFactory = PU_NEW BoxColliderExternFactory(); mParticleSystemManager->addExternFactory(externFactory); mExternFactories.push_back(externFactory); externFactory = PU_NEW VortexExternFactory(); mParticleSystemManager->addExternFactory(externFactory); mExternFactories.push_back(externFactory); externFactory = PU_NEW SceneDecoratorExternFactory(); mParticleSystemManager->addExternFactory(externFactory); mExternFactories.push_back(externFactory); #ifdef PU_PHYSICS_PHYSX externFactory = PU_NEW PhysXActorExternFactory(); mParticleSystemManager->addExternFactory(externFactory); mExternFactories.push_back(externFactory); externFactory = PU_NEW PhysXFluidExternFactory(); mParticleSystemManager->addExternFactory(externFactory); mExternFactories.push_back(externFactory); #endif //PU_PHYSICS_PHYSX // ----------------------- Create behaviour factories ----------------------- ParticleBehaviourFactory* particleBehaviourFactory; particleBehaviourFactory = PU_NEW SlaveBehaviourFactory(); mParticleSystemManager->addBehaviourFactory(particleBehaviourFactory); mBehaviourFactories.push_back(particleBehaviourFactory); }