12 #include <libvecmat_float.h>
13 #include <bdiFarPosition.h>
15 #include <bdi_simple_templates.h>
22 #include <osgEarth/SimplexNoise>
31 class DtFxParticleSystem;
46 virtual bdiCfgEntry* create_cfg_entry()
const;
48 virtual int read_cfg_entries(bdiCfgEntry* cfg_entry);
54 virtual void setPosition(
double x,
double y,
double z);
55 virtual void setPosition(
const bdiFarPosition& pos) { m_position = pos; }
58 const bdiFarPosition&
position()
const {
return m_position; }
67 virtual void setRadius(
float radius) { m_radius = radius; }
68 virtual float radius()
const {
return m_radius; };
83 virtual void setForceDirection(
float x,
float y,
float z) { m_direction = bdiVec3f(x, y, z); }
91 virtual void render_into_vbo(
const bdiFarPosition& eyePoint,
const bdiFarPosition& globalPos,
92 const bdiMat4f& geocentricMat,
const bdiMat4f& geocentricMatInv,
93 bdiVec3fArray& verts, bdiVec4fArray& colors)
const;
96 virtual void render_into_vbo(
const bdiFarPosition& eyePoint, bdiVec3fArray& verts, bdiVec4fArray& colors)
const;
99 virtual float calcBoundingRadius()
const;
102 virtual void updateGlobalPosition(
const bdiFarPosition& position,
103 const bdiMat4f& geocentricMat,
const bdiMat4f& geocentricMatInv);
109 virtual void updateForceStrength();
112 const bdiFarPosition& currentForcePosition,
const bdiMat4f& geocentricMat,
const bdiMat4f& geocentricMatInv,
113 const bdiVec3f& upVec,
DtFxParticle* pParticle,
float particle_mass)
const;
116 const bdiFarPosition& currentForcePosition,
117 const bdiVec3f& upVec,
DtFxParticle* pParticle,
float particle_mass)
const;
149 #ifdef LIBBDIOBJECT_ARRAY_TYPE
150 #undef LIBBDIOBJECT_ARRAY_TYPE
152 #ifdef LIBBDIOBJECT_ARRAY_CLASS_NAME
153 #undef LIBBDIOBJECT_ARRAY_CLASS_NAME
155 #ifdef LIBBDIOBJECT_ARRAY_DECLSPEC_bdiutil
156 #undef LIBBDIOBJECT_ARRAY_DECLSPEC_bdiutil
159 #define LIBBDIOBJECT_ARRAY_TYPE makVrv::DtFxForce
160 #define LIBBDIOBJECT_ARRAY_CLASS_NAME DtFxForceArray
161 #define LIBBDIOBJECT_ARRAY_INLINE
162 #define LIBBDIOBJECT_ARRAY_DISABLE_BOUNDS_CHECKING
167 #undef LIBBDIOBJECT_ARRAY_DISABLE_BOUNDS_CHECKING
168 #undef LIBBDIOBJECT_ARRAY_INLINE
169 #undef LIBBDIOBJECT_ARRAY_TYPE
170 #undef LIBBDIOBJECT_ARRAY_CLASS_NAME
float m_force
Definition: DtFxForce.h:129
class that allows clients to add global forces (no export of virtual base class)
Definition: DtFxForceInterface.h:19
DtFxForce * m_source_force
Definition: DtFxForce.h:135
Definition: bdiQPropTree_subclasses.h:288
virtual const bdiVec3f & forceDirection() const
Definition: DtFxForce.h:84
virtual float forceStrength() const
Definition: DtFxForce.h:80
DtFxParticleSystemManager is the manager for all the particle systems and descriptions diguy sdk comm...
Definition: DtFxParticleSystemManager.h:74
virtual bool globalForce() const
Definition: DtFxForce.h:88
a cpu side particle representation
Definition: DtFxParticleSystem.h:319
virtual ForceType forceType() const
Definition: DtFxForce.h:72
virtual FalloffType falloffType() const
Definition: DtFxForce.h:76
virtual void setFalloffType(FalloffType falloffType)
sets the falloff type
Definition: DtFxForce.h:75
#define DT_DLL_VRVFX
Definition: vrvFx.h:20
virtual void setParticleManager(DtFxParticleSystemManager *manager)
sets the manager
Definition: DtFxForce.h:51
DtFxScriptData myForceScriptData
Definition: DtFxForce.h:142
DtFxParticleSystemManager * m_particle_manager
Definition: DtFxForce.h:136
Contains DLL export macros.
virtual DtFxForce * sourceForce() const
Definition: DtFxForce.h:64
virtual ~DtFxForce()
DTOR.
Definition: DtFxForce.h:43
ForceType m_force_type
Definition: DtFxForce.h:132
const bdiString & forceScript() const
gets the force script
Definition: DtFxForce.h:106
wrapper around a parsed expression.
Definition: DtFxScriptData.h:17
bdiMat4f myGeocentricMat
Definition: DtFxForce.h:138
virtual void setSourceForce(DtFxForce *force)
sets the desc force that this cloned from
Definition: DtFxForce.h:63
FalloffType m_falloff_type
Definition: DtFxForce.h:133
bdiVec3f m_direction
Definition: DtFxForce.h:131
const bdiFarPosition & position() const
gets the position
Definition: DtFxForce.h:58
virtual void setForceStrength(float str)
sets the force strength
Definition: DtFxForce.h:79
bdiFarPosition m_position
Definition: DtFxForce.h:127
const bdiMat4f & geocentricMat() const
Definition: DtFxForce.h:119
DtParticleSystem is implementation of the particle system, vrvOsg communicates with it via DtParticle...
Definition: DtFxParticleSystem.h:387
Contains bdi array class.
ForceType
Definition: DtFxForceInterface.h:22
virtual void setSourceSystem(DtFxParticleSystem *system)
sets the system that created this force
Definition: DtFxForce.h:60
bdiMat4f myGeocentricMatInv
Definition: DtFxForce.h:139
virtual void setRadius(float radius)
sets the volume of the force, only used for None falloff type, other ones will be derived base on fal...
Definition: DtFxForce.h:67
virtual void setPosition(const bdiFarPosition &pos)
Definition: DtFxForce.h:55
forces to include that influence the particles movement /ingroup vrvFx
Definition: DtFxForce.h:35
Contains bdi array class.
bdiFarPosition m_last_geoc_position
Definition: DtFxForce.h:128
virtual void setForceDirection(float x, float y, float z)
currently only used for wind
Definition: DtFxForce.h:83
bdiString myForceScript
Definition: DtFxForce.h:141
const bdiMat4f & geocentricMatInv() const
Definition: DtFxForce.h:120
virtual void setForceType(ForceType forceType)
sets the type of force
Definition: DtFxForce.h:71
virtual void setGlobalForce(bool global)
is this a global force
Definition: DtFxForce.h:87
FalloffType
Definition: DtFxForceInterface.h:34
bool m_global_force
Definition: DtFxForce.h:126
float m_radius
Definition: DtFxForce.h:130
DtFxParticleSystem * m_source_system
Definition: DtFxForce.h:134
static osgEarth::Util::SimplexNoise theNoise
Definition: DtFxForce.h:144
virtual float radius() const
Definition: DtFxForce.h:68