20 #include <diguyParticleManager.h>
22 #include <osg/MatrixTransform>
23 #include <osg/Polytope>
35 class DtFxDebugDrawCallbackInterface;
37 class DtFxOglParticleSystemRenderer;
50 virtual bool get_scenario_owns_particle_manager();
53 virtual void initialize_renderer();
62 virtual void draw(osg::RenderInfo& renderInfo);
65 virtual void drawDebugVisuals(osg::RenderInfo& renderInfo);
68 virtual void addImguiOverlay();
71 virtual void addImguiStats();
77 virtual void reinitialize(
bool recreate_default_effect =
true);
80 virtual void update(
float quantum);
83 virtual void vrvUpdate(
float quantum);
86 virtual int load_entries(
const char* fileName);
102 virtual bdiParticleDescArray* get_descriptions();
111 diguyParticleSystem* create_transient_system(
const char* desc_name,
float life_time_override = -1.0f);
122 virtual int get_number_of_systems();
124 virtual int get_number_of_transient_systems();
129 virtual bdiString get_unique_description_name(
const char* prefix);
134 virtual void destroy_preview_system();
137 virtual void reset();
140 virtual void process_data_queue();
143 virtual void set_draw_debug_visuals(
int val);
145 virtual int get_draw_debug_visuals()
const;
148 virtual void set_global_wind(
const bdiVec3f& wind);
150 virtual const bdiVec3f& get_global_wind()
const;
161 virtual void set_enabled(
int val);
163 virtual void start_emitting_for(diguyCharacter*,
const bdiFarPosition& start_pos,
const bdiVec3f& orient);
165 virtual void stop_emitting_for(diguyCharacter*);
167 virtual void stop_all_particles_for(diguyCharacter*);
180 virtual int load_descs_library(bdiObjectLibrary* object_library);
182 virtual void unload_descs_library(bdiObjectLibrary* object_library);
186 virtual void clear_derived_update_flag_on_next_update();
189 virtual int get_num_systems_drawn()
const;
191 virtual void increment_systems_drawn();
195 virtual bool isGeocentric();
198 virtual void calcGeocentric(
const bdiFarPosition & pos, bdiMat4f& mat, bdiMat4f* inversemat);
205 virtual void setWindSpeed(
float metersPerSecond);
207 virtual void setWindDirection(
float radians);
209 virtual void updateWind();
212 virtual void setNumPreviewSystems(
int value);
214 virtual void restartPreview();
216 virtual void setPreviewSystemsPosition(
const bdiFarPosition& pos);
224 virtual void set_water_height(
const float& water_height);
225 virtual float get_water_height()
const;
233 virtual osg::Node* getOrCreateSensorNode(
int diguyMat);
254 virtual std::string saveFiles();
257 virtual void createDescBackups();
266 virtual void initSystem();
269 virtual void createParticleDrawable();
272 virtual bool hasDescription(
const std::string& name);
274 virtual void slot_reloadShaders();
277 virtual void setWireFrameMode(
bool wireframeMode);
280 virtual void setTextureMode(
bool textureMode);
288 virtual void updateParticles(
double simTime);
291 bool getTerrainOrPropIntersection(
const osg::Vec3d& startPos,
const osg::Vec3d& endPos,
292 osg::Vec3d& result)
const;
295 virtual void addGlobalForce(
DtFxForce* force);
298 virtual void removeGlobalForce(
DtFxForce* force);
301 const DtFxForceArray& globalForces()
const;
304 DtFxForceArray& globalForces();
307 const DtFxCollisionObjectArray& collisionObjects()
const;
310 DtFxCollisionObjectArray* collisionObjectsPtr();
315 tbb::mutex& systemDataMutex();
318 tbb::mutex& lightMutex();
321 const std::set<std::string>& fileNamesList();
324 DtFxParticleSystemArray& previewArray();
327 DtFxParticleSystemArray& systemArray();
330 DtFxParticleSystemHolderArray& testHolderArray();
333 virtual bool* previewAutoMovePtr();
335 virtual float* previewAutoMoveSpeedPtr();
336 virtual bdiVec3f* previewAutoMoveRadiusPtr();
339 virtual void recompileScripts();
350 virtual void update_preview(
const float quantum);
351 virtual void cull(DtFxParticleSystemArray& input, osg::Polytope& polytope,
bool shadow_pass, std::vector< DtFxParticleSystem*>& results);
double myLastUpdateTime
Definition: DtFxParticleSystemManager.h:416
int myTotalVertCount
Definition: DtFxParticleSystemManager.h:411
class that executes low level OpenGL draw calls from the particle system data.
Definition: DtFxOglParticleSystemRenderer.h:30
class that allows clients to add global forces (no export of virtual base class)
Definition: DtFxForceInterface.h:19
int myTotalPrimCount
Definition: DtFxParticleSystemManager.h:412
bdiFarPosition myPreviewCenter
Definition: DtFxParticleSystemManager.h:394
tbb::mutex m_mutex_critical_data
Definition: DtFxParticleSystemManager.h:358
DtFxParticleSystemManager is the manager for all the particle systems and descriptions diguy sdk comm...
Definition: DtFxParticleSystemManager.h:41
float myStatsUpdateTime
Definition: DtFxParticleSystemManager.h:408
float myWindDirection
Definition: DtFxParticleSystemManager.h:391
class that allows clients to add collision objects (no export of virtual base class) ...
Definition: DtFxCollisionVolumeInterface.h:18
bdiFarPosition myEyePosition
Definition: DtFxParticleSystemManager.h:403
float myStatsDrawLastTime
Definition: DtFxParticleSystemManager.h:410
DT_DLL_tdbutil void ps(int indent_level)
bdiParticleDescArray m_descs
Definition: DtFxParticleSystemManager.h:365
Definition: featureContext.h:37
int m_draw_debug_visuals
Definition: DtFxParticleSystemManager.h:383
tbb::mutex m_mutex_texture_data
Definition: DtFxParticleSystemManager.h:360
DtFxParticleSystemArray m_preview_array
Definition: DtFxParticleSystemManager.h:374
virtual void set_draw_placeholder_master_switch(int draw)
compatibility with diguy effects
Definition: DtFxParticleSystemManager.h:174
#define DT_DLL_VRVFX
Definition: vrvFx.h:20
Contains DLL export macros.
bdiParticleDescArray m_init_texture_queue
Definition: DtFxParticleSystemManager.h:368
virtual int get_draw_placeholder_master_switch() const
compatibility with diguy effects
Definition: DtFxParticleSystemManager.h:176
std::vector< DtFxDebugDrawCallbackInterface * > myExtraDebugDrawObjects
Definition: DtFxParticleSystemManager.h:426
float m_water_height
Definition: DtFxParticleSystemManager.h:384
DtFxParticleSystemArray m_trans_systems
Definition: DtFxParticleSystemManager.h:372
Contains particle system class.
DtFxParticleVertex * m_vertbuffer
Definition: DtFxParticleSystemManager.h:388
virtual void draw()
base class no-ops
Definition: DtFxParticleSystemManager.h:59
a gpu vbo representation of the particle
Definition: DtFxParticleSystem.h:356
virtual int get_enabled() const
Definition: DtFxParticleSystemManager.h:159
DtDe & myDe
Definition: DtFxParticleSystemManager.h:400
DtFxCollisionObjectArray myCollisionObjects
Definition: DtFxParticleSystemManager.h:405
std::set< std::string > myFileNamesList
Definition: DtFxParticleSystemManager.h:395
DtSignalConnectionManager myConnections
Definition: DtFxParticleSystemManager.h:398
bdiVec3f myPreviewAutoMoveRadius
Definition: DtFxParticleSystemManager.h:422
virtual void set_draw_placeholder(int draw)
compatibility with diguy effects
Definition: DtFxParticleSystemManager.h:170
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
DtParticleSystem is implementation of the particle system, vrvOsg communicates with it via DtParticle...
Definition: DtFxParticleSystem.h:389
int myNumPreviewSystems
Definition: DtFxParticleSystemManager.h:393
virtual int get_draw_placeholder() const
compatibility with diguy effects
Definition: DtFxParticleSystemManager.h:172
tbb::mutex m_mutex_light_objects
Definition: DtFxParticleSystemManager.h:363
DtFxParticleDesc * m_preview_desc
Definition: DtFxParticleSystemManager.h:381
bool myPreviewAutoMove
public to allow the UI to edit
Definition: DtFxParticleSystemManager.h:419
std::map< int, osg::ref_ptr< osg::Node > > mySensorMap
Definition: DtFxParticleSystemManager.h:402
forces to include that influence the particles movement /ingroup vrvFx
Definition: DtFxForce.h:35
virtual void set_particle_module_disabled(int dis)
Definition: DtFxParticleSystemManager.h:223
Base class to provide boost signal/slot management.
bdiParticleDescArray m_backup_descs
Definition: DtFxParticleSystemManager.h:366
class that wraps the particle manager in vrvFx in a vrv friendly layer
Definition: DtParticleSystemManagerInterface.h:36
float myStatsDrawTime
Definition: DtFxParticleSystemManager.h:409
A simple interface for allowing the qt particle editor to draw lines at the right time...
Definition: DtFxDebugDrawCallbackInterface.h:23
virtual int get_license_status() const
always true
Definition: DtFxParticleSystemManager.h:178
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
osg::Polytope myCullPolytop
Definition: DtFxParticleSystemManager.h:424
float myPreviewAutoMoveSpeed
public to allow the UI to edit
Definition: DtFxParticleSystemManager.h:421
osg::ref_ptr< osg::MatrixTransform > myParticleRendererGroup
Definition: DtFxParticleSystemManager.h:415
std::vector< DtFxParticleSystem * > myAllSystems
Definition: DtFxParticleSystemManager.h:396
osg::ref_ptr< DtFxOsgParticleDrawable > myFxOsgParticleDrawable
Definition: DtFxParticleSystemManager.h:401
DtFxParticleSystemHolderArray m_test_holder_array
array for additional test systems
Definition: DtFxParticleSystemManager.h:377
DtFxParticleSystemArray m_psystems
Definition: DtFxParticleSystemManager.h:370
int m_clear_derived_update_flag_on_next_update
Definition: DtFxParticleSystemManager.h:385
int myNumSystemsDrawn
Definition: DtFxParticleSystemManager.h:413
DtFxForceArray m_global_forces
Definition: DtFxParticleSystemManager.h:379
a subclass of bdiParticleDesc, currently reimplements all of configuration file reading and writing...
Definition: DtFxParticleSystem.h:112
float myWindSpeed
Definition: DtFxParticleSystemManager.h:390