21 #include <diguyParticleManager.h>
23 #include <osg/MatrixTransform>
24 #include <osg/Polytope>
36 class DtFxDebugDrawCallbackInterface;
38 class DtFxOglParticleSystemRenderer;
40 class DtOsgIntersector;
42 class DtCoordinateSystem;
56 virtual bool get_scenario_owns_particle_manager();
59 virtual void initialize_renderer();
68 virtual void draw(osg::RenderInfo& renderInfo);
71 virtual void drawDebugVisuals(osg::RenderInfo& renderInfo);
74 virtual void addImguiOverlay();
77 virtual void addImguiStats();
84 virtual void reinitialize(
bool recreate_default_effect =
true);
87 virtual void update(
float quantum);
90 virtual void vrvUpdate(
float quantum);
93 virtual void resetLastSimUpdateTime();
96 virtual int load_entries(
const char* fileName);
112 virtual bdiParticleDescArray* get_descriptions();
121 diguyParticleSystem* create_transient_system(
const char* desc_name,
float life_time_override = -1.0f);
132 virtual int get_number_of_systems();
134 virtual int get_number_of_transient_systems();
139 virtual bdiString get_unique_description_name(
const char* prefix);
144 virtual void destroy_preview_system();
147 virtual void reset();
150 virtual void process_data_queue();
153 virtual void set_draw_debug_visuals(
int val);
155 virtual int get_draw_debug_visuals()
const;
158 virtual void set_global_wind(
const bdiVec3f& wind);
160 virtual const bdiVec3f& get_global_wind()
const;
171 virtual void set_enabled(
int val);
173 virtual void start_emitting_for(diguyCharacter*,
const bdiFarPosition& start_pos,
const bdiVec3f& orient);
175 virtual void stop_emitting_for(diguyCharacter*);
177 virtual void stop_all_particles_for(diguyCharacter*);
190 virtual int load_descs_library(bdiObjectLibrary* object_library);
192 virtual void unload_descs_library(bdiObjectLibrary* object_library);
196 virtual void clear_derived_update_flag_on_next_update();
199 virtual int get_num_systems_drawn()
const;
201 virtual void increment_systems_drawn();
205 virtual bool isGeocentric();
208 virtual void calcGeocentric(
const bdiFarPosition & pos, bdiMat4f& mat, bdiMat4f* inversemat);
215 virtual void setWindSpeed(
float metersPerSecond);
217 virtual void setWindDirection(
float radians);
219 virtual void updateWind();
222 virtual void setNumPreviewSystems(
int value);
224 virtual void restartPreview();
226 virtual void setPreviewSystemsPosition(
const bdiFarPosition& pos);
234 virtual void set_water_height(
const float& water_height);
235 virtual float get_water_height()
const;
243 virtual osg::Node* getOrCreateSensorNode(
int diguyMat);
264 virtual std::string saveFiles();
267 virtual void createDescBackups();
276 virtual void initSystem();
279 virtual void createParticleDrawable();
282 virtual bool hasDescription(
const std::string& name);
284 virtual void slot_reloadShaders();
287 virtual void setWireFrameMode(
bool wireframeMode);
290 virtual void setTextureMode(
bool textureMode);
298 virtual void updateParticles(
double simTime);
301 bool getTerrainOrPropIntersection(
const osg::Vec3d& startPos,
const osg::Vec3d& endPos,
302 osg::Vec3d& result)
const;
305 virtual void addGlobalForce(
DtFxForce* force);
308 virtual void removeGlobalForce(
DtFxForce* force);
311 const DtFxForceArray& globalForces()
const;
314 DtFxForceArray& globalForces();
317 const DtFxCollisionObjectArray& collisionObjects()
const;
320 DtFxCollisionObjectArray* collisionObjectsPtr();
325 tbb::mutex& systemDataMutex();
328 tbb::mutex& lightMutex();
331 const std::set<std::string>& fileNamesList();
334 DtFxParticleSystemArray& previewArray();
337 DtFxParticleSystemArray& systemArray();
340 DtFxParticleSystemHolderArray& testHolderArray();
343 virtual bool* previewAutoMovePtr();
345 virtual float* previewAutoMoveSpeedPtr();
346 virtual bdiVec3f* previewAutoMoveRadiusPtr();
349 virtual void recompileScripts();
357 virtual bool anyToUpdateCullDraw(
void);
360 virtual void setPauseAllSystems(
bool val);
362 virtual bool pauseAllSystems()
const ;
365 virtual void setGlobalControlActive(
bool val);
367 virtual bool globalControlActive()
const;
375 virtual void update_preview(
const float quantum);
376 virtual void cull(DtFxParticleSystemArray& input, osg::Polytope& polytope,
bool shadow_pass, std::vector< DtFxParticleSystem*>& results);
382 virtual bool anyActive(DtFxParticleSystemArray& input);
385 virtual void slot_coordinateSystemChanged();
double myLastUpdateTime
Definition: DtFxParticleSystemManager.h:447
int myTotalVertCount
Definition: DtFxParticleSystemManager.h:442
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:443
bdiFarPosition myPreviewCenter
Definition: DtFxParticleSystemManager.h:425
tbb::mutex m_mutex_critical_data
Definition: DtFxParticleSystemManager.h:389
DtFxParticleSystemManager is the manager for all the particle systems and descriptions diguy sdk comm...
Definition: DtFxParticleSystemManager.h:47
float myStatsUpdateTime
Definition: DtFxParticleSystemManager.h:439
float myWindDirection
Definition: DtFxParticleSystemManager.h:422
std::vector< DtSceneRoot > DtSceneRootList
A list of DtOsgRenderer::SceneRoots.
Definition: DtSceneRoot.h:135
class that allows clients to add collision objects (no export of virtual base class) ...
Definition: DtFxCollisionVolumeInterface.h:18
bdiFarPosition myEyePosition
Definition: DtFxParticleSystemManager.h:434
float myStatsDrawLastTime
Definition: DtFxParticleSystemManager.h:441
DT_DLL_tdbutil void ps(int indent_level)
bdiParticleDescArray m_descs
Definition: DtFxParticleSystemManager.h:396
Definition: featureContext.h:37
int m_draw_debug_visuals
Definition: DtFxParticleSystemManager.h:414
DtOsgIntersector is the OSG-specific implementation of the DtIntersector class. It provides a variety...
Definition: DtOsgIntersector.h:66
tbb::mutex m_mutex_texture_data
Definition: DtFxParticleSystemManager.h:391
std::vector< DtFxParticleSystem * > myViewFrustumSystems
Definition: DtFxParticleSystemManager.h:427
DtFxParticleSystemArray m_preview_array
Definition: DtFxParticleSystemManager.h:405
virtual void set_draw_placeholder_master_switch(int draw)
compatibility with diguy effects
Definition: DtFxParticleSystemManager.h:184
#define DT_DLL_VRVFX
Definition: vrvFx.h:20
DtOsgIntersector * myIntersector3dModelSet
Definition: DtFxParticleSystemManager.h:461
Contains DLL export macros.
bdiParticleDescArray m_init_texture_queue
Definition: DtFxParticleSystemManager.h:399
virtual int get_draw_placeholder_master_switch() const
compatibility with diguy effects
Definition: DtFxParticleSystemManager.h:186
std::vector< DtFxDebugDrawCallbackInterface * > myExtraDebugDrawObjects
Definition: DtFxParticleSystemManager.h:459
float m_water_height
Definition: DtFxParticleSystemManager.h:415
DtFxParticleSystemArray m_trans_systems
Definition: DtFxParticleSystemManager.h:403
Contains particle system class.
DtSceneRootList myIntersectionRoots
Definition: DtFxParticleSystemManager.h:463
DtFxParticleVertex * m_vertbuffer
Definition: DtFxParticleSystemManager.h:419
virtual void draw()
base class no-ops
Definition: DtFxParticleSystemManager.h:65
a gpu vbo representation of the particle
Definition: DtFxParticleSystem.h:364
virtual int get_enabled() const
Definition: DtFxParticleSystemManager.h:169
DtDe & myDe
Definition: DtFxParticleSystemManager.h:431
DtFxCollisionObjectArray myCollisionObjects
Definition: DtFxParticleSystemManager.h:436
std::set< std::string > myFileNamesList
Definition: DtFxParticleSystemManager.h:426
DtSignalConnectionManager myConnections
Definition: DtFxParticleSystemManager.h:429
bdiVec3f myPreviewAutoMoveRadius
Definition: DtFxParticleSystemManager.h:455
virtual void set_draw_placeholder(int draw)
compatibility with diguy effects
Definition: DtFxParticleSystemManager.h:180
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:397
int myNumPreviewSystems
Definition: DtFxParticleSystemManager.h:424
virtual int get_draw_placeholder() const
compatibility with diguy effects
Definition: DtFxParticleSystemManager.h:182
tbb::mutex m_mutex_light_objects
Definition: DtFxParticleSystemManager.h:394
DtFxParticleDesc * m_preview_desc
Definition: DtFxParticleSystemManager.h:412
bool myPreviewAutoMove
public to allow the UI to edit
Definition: DtFxParticleSystemManager.h:450
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
bool myPauseAllSystems
Definition: DtFxParticleSystemManager.h:451
std::map< int, osg::ref_ptr< osg::Node > > mySensorMap
Definition: DtFxParticleSystemManager.h:433
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:233
Contains makVrv::DtSceneRoot class.
Base class to provide boost signal/slot management.
bdiParticleDescArray m_backup_descs
Definition: DtFxParticleSystemManager.h:397
class that wraps the particle manager in vrvFx in a vrv friendly layer
Definition: DtParticleSystemManagerInterface.h:36
float myStatsDrawTime
Definition: DtFxParticleSystemManager.h:440
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:188
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:72
osg::Polytope myCullPolytop
Definition: DtFxParticleSystemManager.h:457
float myPreviewAutoMoveSpeed
public to allow the UI to edit
Definition: DtFxParticleSystemManager.h:454
osg::ref_ptr< osg::MatrixTransform > myParticleRendererGroup
Definition: DtFxParticleSystemManager.h:446
osg::ref_ptr< DtFxOsgParticleDrawable > myFxOsgParticleDrawable
Definition: DtFxParticleSystemManager.h:432
DtFxParticleSystemHolderArray m_test_holder_array
array for additional test systems
Definition: DtFxParticleSystemManager.h:408
DtFxParticleSystemArray m_psystems
Definition: DtFxParticleSystemManager.h:401
bool myGlobalControlActive
Definition: DtFxParticleSystemManager.h:452
int m_clear_derived_update_flag_on_next_update
Definition: DtFxParticleSystemManager.h:416
int myNumSystemsDrawn
Definition: DtFxParticleSystemManager.h:444
DtFxForceArray m_global_forces
Definition: DtFxParticleSystemManager.h:410
a subclass of bdiParticleDesc, currently reimplements all of configuration file reading and writing...
Definition: DtFxParticleSystem.h:113
float myWindSpeed
Definition: DtFxParticleSystemManager.h:421