OGRE-Next  4.0.0unstable
Object-Oriented Graphics Rendering Engine
Ogre::LinearForceAffector Class Reference

This class defines a ParticleAffector which applies a linear force to particles in a system. More...

#include <OgreLinearForceAffector.h>

+ Inheritance diagram for Ogre::LinearForceAffector:

Classes

class  CmdForceApp
 Command object for force application (see ParamCommand). More...
 
class  CmdForceVector
 Command object for force vector (see ParamCommand). More...
 

Public Types

enum  ForceApplication { FA_AVERAGE , FA_ADD }
 Choice of how to apply the force vector to particles. More...
 

Public Member Functions

 LinearForceAffector (ParticleSystem *psys)
 Default constructor. More...
 
void _affectParticles (ParticleSystem *pSystem, Real timeElapsed) override
 See ParticleAffector. More...
 
ForceApplication getForceApplication () const
 Retrieves how the force vector is applied to a particle. More...
 
Vector3 getForceVector () const
 Gets the force vector to apply to the particles in a system. More...
 
void setForceApplication (ForceApplication fa)
 Sets how the force vector is applied to a particle. More...
 
void setForceVector (const Vector3 &force)
 Sets the force vector to apply to the particles in a system. More...
 
- Public Member Functions inherited from Ogre::ParticleAffector
 ParticleAffector (ParticleSystem *parent)
 
virtual ~ParticleAffector ()
 Virtual destructor essential. More...
 
virtual void _initParticle (Particle *pParticle)
 Method called to allow the affector to initialize all newly created particles in the system. More...
 
const StringgetType () const
 Returns the name of the type of affector. More...
 
- Public Member Functions inherited from Ogre::StringInterface
 StringInterface ()
 
virtual ~StringInterface ()
 Virtual destructor, see Effective C++. More...
 
virtual void copyParametersTo (StringInterface *dest) const
 Method for copying this object's parameters to another object. More...
 
ParamDictionarygetParamDictionary ()
 Retrieves the parameter dictionary for this class. More...
 
const ParamDictionarygetParamDictionary () const
 
virtual String getParameter (const String &name) const
 Generic parameter retrieval method. More...
 
const ParameterListgetParameters () const
 Retrieves a list of parameters valid for this object. More...
 
virtual bool setParameter (const String &name, const String &value)
 Generic parameter setting method. More...
 
virtual void setParameterList (const NameValuePairList &paramList)
 Generic multiple parameter setting method. More...
 

Static Public Attributes

static CmdForceApp msForceAppCmd
 
static CmdForceVector msForceVectorCmd
 Command objects. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Ogre::StringInterface
static void cleanupDictionary ()
 Cleans up the static 'msDictionary' required to reset Ogre, otherwise the containers are left with invalid pointers, which will lead to a crash as soon as one of the ResourceManager implementers (e.g. More...
 

Detailed Description

This class defines a ParticleAffector which applies a linear force to particles in a system.

Remarks
This affector (see ParticleAffector) applies a linear force, such as gravity, to a particle system. This force can be applied in 2 ways: by taking the average of the particle's current momentum and the force vector, or by adding the force vector to the current particle's momentum.
The former approach is self-stabilising i.e. once a particle's momentum is equal to the force vector, no further change is made to it's momentum. It also results in a non-linear acceleration of particles. The latter approach is simpler and applies a constant acceleration to particles. However, it is not self-stabilising and can lead to perpetually increasing particle velocities. You choose the approach by calling the setForceApplication method.

Member Enumeration Documentation

◆ ForceApplication

Choice of how to apply the force vector to particles.

Enumerator
FA_AVERAGE 

Take the average of the force vector and the particle momentum.

FA_ADD 

Add the force vector to the particle momentum.

Constructor & Destructor Documentation

◆ LinearForceAffector()

Ogre::LinearForceAffector::LinearForceAffector ( ParticleSystem psys)

Default constructor.

Member Function Documentation

◆ _affectParticles()

void Ogre::LinearForceAffector::_affectParticles ( ParticleSystem pSystem,
Real  timeElapsed 
)
overridevirtual

◆ getForceApplication()

ForceApplication Ogre::LinearForceAffector::getForceApplication ( ) const

Retrieves how the force vector is applied to a particle.

Returns
A member of the ForceApplication enum.

◆ getForceVector()

Vector3 Ogre::LinearForceAffector::getForceVector ( ) const

Gets the force vector to apply to the particles in a system.

◆ setForceApplication()

void Ogre::LinearForceAffector::setForceApplication ( ForceApplication  fa)

Sets how the force vector is applied to a particle.

Remarks
The default is FA_ADD.
Parameters
faA member of the ForceApplication enum.

◆ setForceVector()

void Ogre::LinearForceAffector::setForceVector ( const Vector3 force)

Sets the force vector to apply to the particles in a system.

Member Data Documentation

◆ msForceAppCmd

CmdForceApp Ogre::LinearForceAffector::msForceAppCmd
static

◆ msForceVectorCmd

CmdForceVector Ogre::LinearForceAffector::msForceVectorCmd
static

Command objects.


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