VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Attributes | Static Protected Attributes | Friends
makVrv::DtFxForce Class Reference

forces to include that influence the particles movement /ingroup vrvFx

Inheritance diagram for makVrv::DtFxForce:
Inheritance graph
[legend]

Public Member Functions

 DtFxForce ()
 
 DtFxForce (const DtFxForce &rhs)
 
DtFxForceoperator= (const DtFxForce &)
 
virtual ~DtFxForce ()
 
virtual bdiCfgEntry * create_cfg_entry () const
 
virtual int read_cfg_entries (bdiCfgEntry *cfg_entry)
 
virtual void setParticleManager (DtFxParticleSystemManager *manager)
 
virtual void setPosition (double x, double y, double z)
 
virtual void setPosition (const bdiFarPosition &pos)
 
const bdiFarPosition & position () const
 
virtual void setSourceSystem (DtFxParticleSystem *system)
 
virtual void setSourceForce (DtFxForce *force)
 
virtual DtFxForcesourceForce () const
 
virtual void setRadius (float radius)
 
virtual float radius () const
 
virtual void setForceType (ForceType forceType)
 
virtual ForceType forceType () const
 
virtual void setFalloffType (FalloffType falloffType)
 
virtual FalloffType falloffType () const
 
virtual void setForceStrength (float str)
 
virtual float forceStrength () const
 
virtual void setForceDirection (float x, float y, float z)
 
virtual const bdiVec3f & forceDirection () const
 
virtual void setGlobalForce (bool global)
 
virtual bool globalForce () const
 
virtual void render_into_vbo (const bdiFarPosition &eyePoint, const bdiFarPosition &globalPos, const bdiMat4f &geocentricMat, const bdiMat4f &geocentricMatInv, bdiVec3fArray &verts, bdiVec4fArray &colors) const
 
virtual void render_into_vbo (const bdiFarPosition &eyePoint, bdiVec3fArray &verts, bdiVec4fArray &colors) const
 
virtual float calcBoundingRadius () const
 
virtual void updateGlobalPosition (const bdiFarPosition &position, const bdiMat4f &geocentricMat, const bdiMat4f &geocentricMatInv)
 
const bdiString & forceScript () const
 
virtual void updateForceStrength ()
 
void applyForceGeocentric (const DtFxParticleSystem *system, float quantum, const bdiFarPosition &currentForcePosition, const bdiMat4f &geocentricMat, const bdiMat4f &geocentricMatInv, const bdiVec3f &upVec, DtFxParticle *pParticle, float particle_mass) const
 
void applyForceFlatEarth (const DtFxParticleSystem *system, float quantum, const bdiFarPosition &currentForcePosition, const bdiVec3f &upVec, DtFxParticle *pParticle, float particle_mass) const
 
const bdiMat4f & geocentricMat () const
 
const bdiMat4f & geocentricMatInv () const
 
- Public Member Functions inherited from makVrv::DtFxForceInterface
virtual ~DtFxForceInterface ()
 
virtual void setForceType (ForceType falloff_type)=0
 
virtual void setFalloffType (FalloffType falloff_type)=0
 

Protected Attributes

bool m_global_force
 
bdiFarPosition m_position
 
bdiFarPosition m_last_geoc_position
 
float m_force
 
float m_radius
 
bdiVec3f m_direction
 
ForceType m_force_type
 
FalloffType m_falloff_type
 
DtFxParticleSystemm_source_system
 
DtFxForcem_source_force
 
DtFxParticleSystemManagerm_particle_manager
 
bdiMat4f myGeocentricMat
 
bdiMat4f myGeocentricMatInv
 
bdiString myForceScript
 
DtFxScriptData myForceScriptData
 

Static Protected Attributes

static osgEarth::Util::SimplexNoise theNoise
 

Friends

class bdiQPropTreeItemAdditionalForce
 

Additional Inherited Members

- Public Types inherited from makVrv::DtFxForceInterface
enum  ForceType {
  Repulsor2D, Repulsor3D, Attractor2D, Attractor3D,
  Spinner2D, LiftVortex, WindVolume, CurlNoise
}
 
enum  FalloffType { None, Linear, DistanceSquared }
 

Constructor & Destructor Documentation

makVrv::DtFxForce::DtFxForce ( )

CTOR.

makVrv::DtFxForce::DtFxForce ( const DtFxForce rhs)

copy CTOR

virtual makVrv::DtFxForce::~DtFxForce ( )
inlinevirtual

DTOR.

Member Function Documentation

DtFxForce& makVrv::DtFxForce::operator= ( const DtFxForce )

assignment

virtual bdiCfgEntry* makVrv::DtFxForce::create_cfg_entry ( ) const
virtual

serialize to diguy config entry

virtual int makVrv::DtFxForce::read_cfg_entries ( bdiCfgEntry *  cfg_entry)
virtual

load from diguy config entry

virtual void makVrv::DtFxForce::setParticleManager ( DtFxParticleSystemManager manager)
inlinevirtual

sets the manager

virtual void makVrv::DtFxForce::setPosition ( double  x,
double  y,
double  z 
)
virtual

sets the position of the object

Implements makVrv::DtFxForceInterface.

virtual void makVrv::DtFxForce::setPosition ( const bdiFarPosition &  pos)
inlinevirtual
const bdiFarPosition& makVrv::DtFxForce::position ( ) const
inline

gets the position

virtual void makVrv::DtFxForce::setSourceSystem ( DtFxParticleSystem system)
inlinevirtual

sets the system that created this force

virtual void makVrv::DtFxForce::setSourceForce ( DtFxForce force)
inlinevirtual

sets the desc force that this cloned from

virtual DtFxForce* makVrv::DtFxForce::sourceForce ( ) const
inlinevirtual
virtual void makVrv::DtFxForce::setRadius ( float  radius)
inlinevirtual

sets the volume of the force, only used for None falloff type, other ones will be derived base on falloff.

Implements makVrv::DtFxForceInterface.

virtual float makVrv::DtFxForce::radius ( ) const
inlinevirtual
virtual void makVrv::DtFxForce::setForceType ( ForceType  forceType)
inlinevirtual

sets the type of force

virtual ForceType makVrv::DtFxForce::forceType ( ) const
inlinevirtual
virtual void makVrv::DtFxForce::setFalloffType ( FalloffType  falloffType)
inlinevirtual

sets the falloff type

virtual FalloffType makVrv::DtFxForce::falloffType ( ) const
inlinevirtual
virtual void makVrv::DtFxForce::setForceStrength ( float  str)
inlinevirtual

sets the force strength

Implements makVrv::DtFxForceInterface.

virtual float makVrv::DtFxForce::forceStrength ( ) const
inlinevirtual
virtual void makVrv::DtFxForce::setForceDirection ( float  x,
float  y,
float  z 
)
inlinevirtual

currently only used for wind

Implements makVrv::DtFxForceInterface.

virtual const bdiVec3f& makVrv::DtFxForce::forceDirection ( ) const
inlinevirtual
virtual void makVrv::DtFxForce::setGlobalForce ( bool  global)
inlinevirtual

is this a global force

virtual bool makVrv::DtFxForce::globalForce ( ) const
inlinevirtual
virtual void makVrv::DtFxForce::render_into_vbo ( const bdiFarPosition &  eyePoint,
const bdiFarPosition &  globalPos,
const bdiMat4f &  geocentricMat,
const bdiMat4f &  geocentricMatInv,
bdiVec3fArray &  verts,
bdiVec4fArray &  colors 
) const
virtual

local object render helper

virtual void makVrv::DtFxForce::render_into_vbo ( const bdiFarPosition &  eyePoint,
bdiVec3fArray &  verts,
bdiVec4fArray &  colors 
) const
virtual

global object render helper

virtual float makVrv::DtFxForce::calcBoundingRadius ( ) const
virtual

used by culling system

virtual void makVrv::DtFxForce::updateGlobalPosition ( const bdiFarPosition &  position,
const bdiMat4f &  geocentricMat,
const bdiMat4f &  geocentricMatInv 
)
virtual

updates position of child force

const bdiString& makVrv::DtFxForce::forceScript ( ) const
inline

gets the force script

virtual void makVrv::DtFxForce::updateForceStrength ( )
virtual

updates the force strength only for scripted ones

void makVrv::DtFxForce::applyForceGeocentric ( const DtFxParticleSystem system,
float  quantum,
const bdiFarPosition &  currentForcePosition,
const bdiMat4f &  geocentricMat,
const bdiMat4f &  geocentricMatInv,
const bdiVec3f &  upVec,
DtFxParticle pParticle,
float  particle_mass 
) const
void makVrv::DtFxForce::applyForceFlatEarth ( const DtFxParticleSystem system,
float  quantum,
const bdiFarPosition &  currentForcePosition,
const bdiVec3f &  upVec,
DtFxParticle pParticle,
float  particle_mass 
) const
const bdiMat4f& makVrv::DtFxForce::geocentricMat ( ) const
inline
const bdiMat4f& makVrv::DtFxForce::geocentricMatInv ( ) const
inline

Friends And Related Function Documentation

friend class bdiQPropTreeItemAdditionalForce
friend

allows UI to edit all the internals

Member Data Documentation

bool makVrv::DtFxForce::m_global_force
protected
bdiFarPosition makVrv::DtFxForce::m_position
protected
bdiFarPosition makVrv::DtFxForce::m_last_geoc_position
protected
float makVrv::DtFxForce::m_force
protected
float makVrv::DtFxForce::m_radius
protected
bdiVec3f makVrv::DtFxForce::m_direction
protected
ForceType makVrv::DtFxForce::m_force_type
protected
FalloffType makVrv::DtFxForce::m_falloff_type
protected
DtFxParticleSystem* makVrv::DtFxForce::m_source_system
protected
DtFxForce* makVrv::DtFxForce::m_source_force
protected
DtFxParticleSystemManager* makVrv::DtFxForce::m_particle_manager
protected
bdiMat4f makVrv::DtFxForce::myGeocentricMat
protected
bdiMat4f makVrv::DtFxForce::myGeocentricMatInv
protected
bdiString makVrv::DtFxForce::myForceScript
protected
DtFxScriptData makVrv::DtFxForce::myForceScriptData
protected
osgEarth::Util::SimplexNoise makVrv::DtFxForce::theNoise
staticprotected

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

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)