12 #include <libvecmat_float.h>
13 #include <bdiFarPosition.h>
15 #include <bdi_simple_templates.h>
22 #include <osgEarth/SimplexNoise>
31 class DtFxParticleSystem;
48 virtual bdiCfgEntry* create_cfg_entry()
const;
50 virtual int read_cfg_entries(bdiCfgEntry* cfg_entry);
56 virtual void setPosition(
double x,
double y,
double z);
57 virtual void setPosition(
const bdiFarPosition& pos) { m_position = pos; }
60 const bdiFarPosition&
position()
const {
return m_position; }
69 virtual void setRadius(
float radius) { m_radius = radius; }
70 virtual float radius()
const {
return m_radius; };
85 virtual void setForceDirection(
float x,
float y,
float z) { m_direction = bdiVec3f(x, y, z); }
93 virtual void render_into_vbo(
const bdiFarPosition& eyePoint,
const bdiFarPosition& globalPos,
94 const bdiMat4f& geocentricMat,
const bdiMat4f& geocentricMatInv,
95 bdiVec3fArray& verts, bdiVec4fArray& colors)
const;
98 virtual void render_into_vbo(
const bdiFarPosition& eyePoint, bdiVec3fArray& verts, bdiVec4fArray& colors)
const;
101 virtual float calcBoundingRadius()
const;
104 virtual void updateGlobalPosition(
const bdiFarPosition& position,
105 const bdiMat4f& geocentricMat,
const bdiMat4f& geocentricMatInv);
111 virtual void updateForceStrength();
114 const bdiFarPosition& currentForcePosition,
const bdiMat4f& geocentricMat,
const bdiMat4f& geocentricMatInv,
115 const bdiVec3f& upVec,
DtFxParticle* pParticle,
float particle_mass)
const;
118 const bdiFarPosition& currentForcePosition,
119 const bdiVec3f& upVec,
DtFxParticle* pParticle,
float particle_mass)
const;
151 #ifdef LIBBDIOBJECT_ARRAY_TYPE
152 #undef LIBBDIOBJECT_ARRAY_TYPE
154 #ifdef LIBBDIOBJECT_ARRAY_CLASS_NAME
155 #undef LIBBDIOBJECT_ARRAY_CLASS_NAME
157 #ifdef LIBBDIOBJECT_ARRAY_DECLSPEC_bdiutil
158 #undef LIBBDIOBJECT_ARRAY_DECLSPEC_bdiutil
161 #define LIBBDIOBJECT_ARRAY_TYPE makVrv::DtFxForce
162 #define LIBBDIOBJECT_ARRAY_CLASS_NAME DtFxForceArray
163 #define LIBBDIOBJECT_ARRAY_INLINE
164 #define LIBBDIOBJECT_ARRAY_DISABLE_BOUNDS_CHECKING
169 #undef LIBBDIOBJECT_ARRAY_DISABLE_BOUNDS_CHECKING
170 #undef LIBBDIOBJECT_ARRAY_INLINE
171 #undef LIBBDIOBJECT_ARRAY_TYPE
172 #undef LIBBDIOBJECT_ARRAY_CLASS_NAME
float m_force
Definition: DtFxForce.h:131
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:137
Definition: bdiQPropTree_subclasses.h:288
virtual const bdiVec3f & forceDirection() const
Definition: DtFxForce.h:86
virtual float forceStrength() const
Definition: DtFxForce.h:82
DtFxParticleSystemManager is the manager for all the particle systems and descriptions diguy sdk comm...
Definition: DtFxParticleSystemManager.h:41
virtual bool globalForce() const
Definition: DtFxForce.h:90
a cpu side particle representation
Definition: DtFxParticleSystem.h:321
virtual ForceType forceType() const
Definition: DtFxForce.h:74
virtual FalloffType falloffType() const
Definition: DtFxForce.h:78
virtual void setFalloffType(FalloffType falloffType)
sets the falloff type
Definition: DtFxForce.h:77
#define DT_DLL_VRVFX
Definition: vrvFx.h:20
virtual void setParticleManager(DtFxParticleSystemManager *manager)
sets the manager
Definition: DtFxForce.h:53
DtFxScriptData myForceScriptData
Definition: DtFxForce.h:144
DtFxParticleSystemManager * m_particle_manager
Definition: DtFxForce.h:138
Contains DLL export macros.
virtual DtFxForce * sourceForce() const
Definition: DtFxForce.h:66
virtual ~DtFxForce()
DTOR.
Definition: DtFxForce.h:45
ForceType m_force_type
Definition: DtFxForce.h:134
const bdiString & forceScript() const
gets the force script
Definition: DtFxForce.h:108
wrapper around a parsed expression.
Definition: DtFxScriptData.h:17
bdiMat4f myGeocentricMat
Definition: DtFxForce.h:140
virtual void setSourceForce(DtFxForce *force)
sets the desc force that this cloned from
Definition: DtFxForce.h:65
FalloffType m_falloff_type
Definition: DtFxForce.h:135
bdiVec3f m_direction
Definition: DtFxForce.h:133
const bdiFarPosition & position() const
gets the position
Definition: DtFxForce.h:60
virtual void setForceStrength(float str)
sets the force strength
Definition: DtFxForce.h:81
bdiFarPosition m_position
Definition: DtFxForce.h:129
const bdiMat4f & geocentricMat() const
Definition: DtFxForce.h:121
DtParticleSystem is implementation of the particle system, vrvOsg communicates with it via DtParticle...
Definition: DtFxParticleSystem.h:389
Contains bdi array class.
ForceType
Definition: DtFxForceInterface.h:22
virtual void setSourceSystem(DtFxParticleSystem *system)
sets the system that created this force
Definition: DtFxForce.h:62
bdiMat4f myGeocentricMatInv
Definition: DtFxForce.h:141
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:69
virtual void setPosition(const bdiFarPosition &pos)
Definition: DtFxForce.h:57
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:130
virtual void setForceDirection(float x, float y, float z)
currently only used for wind
Definition: DtFxForce.h:85
bdiString myForceScript
Definition: DtFxForce.h:143
const bdiMat4f & geocentricMatInv() const
Definition: DtFxForce.h:122
virtual void setForceType(ForceType forceType)
sets the type of force
Definition: DtFxForce.h:73
virtual void setGlobalForce(bool global)
is this a global force
Definition: DtFxForce.h:89
FalloffType
Definition: DtFxForceInterface.h:34
bool m_global_force
Definition: DtFxForce.h:128
float m_radius
Definition: DtFxForce.h:132
DtFxParticleSystem * m_source_system
Definition: DtFxForce.h:136
static osgEarth::Util::SimplexNoise theNoise
Definition: DtFxForce.h:146
virtual float radius() const
Definition: DtFxForce.h:70