OGRE-Next: Ogre::LinearForceAffector Class Reference

| OGRE-Next 3.0.0 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
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:
[legend]

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

## Static Public Attributes
static CmdForceApp | msForceAppCmd
static CmdForceVector | msForceVectorCmd
| Command objects.

## 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.

## 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

enum Ogre::LinearForceAffector::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

See ParticleAffector.

Implements Ogre::ParticleAffector.

## ◆ 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

  fa | A 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:

- OgreLinearForceAffector.h