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 int load_entries(
const char* fileName);
109 virtual bdiParticleDescArray* get_descriptions();
118 diguyParticleSystem* create_transient_system(
const char* desc_name,
float life_time_override = -1.0f);
129 virtual int get_number_of_systems();
131 virtual int get_number_of_transient_systems();
136 virtual bdiString get_unique_description_name(
const char* prefix);
141 virtual void destroy_preview_system();
144 virtual void reset();
147 virtual void process_data_queue();
150 virtual void set_draw_debug_visuals(
int val);
152 virtual int get_draw_debug_visuals()
const;
155 virtual void set_global_wind(
const bdiVec3f& wind);
157 virtual const bdiVec3f& get_global_wind()
const;
168 virtual void set_enabled(
int val);
170 virtual void start_emitting_for(diguyCharacter*,
const bdiFarPosition& start_pos,
const bdiVec3f& orient);
172 virtual void stop_emitting_for(diguyCharacter*);
174 virtual void stop_all_particles_for(diguyCharacter*);
187 virtual int load_descs_library(bdiObjectLibrary* object_library);
189 virtual void unload_descs_library(bdiObjectLibrary* object_library);
193 virtual void clear_derived_update_flag_on_next_update();
196 virtual int get_num_systems_drawn()
const;
198 virtual void increment_systems_drawn();
202 virtual bool isGeocentric();
205 virtual void calcGeocentric(
const bdiFarPosition & pos, bdiMat4f& mat, bdiMat4f* inversemat);
212 virtual void setWindSpeed(
float metersPerSecond);
214 virtual void setWindDirection(
float radians);
216 virtual void updateWind();
219 virtual void setNumPreviewSystems(
int value);
221 virtual void restartPreview();
223 virtual void setPreviewSystemsPosition(
const bdiFarPosition& pos);
231 virtual void set_water_height(
const float& water_height);
232 virtual float get_water_height()
const;
240 virtual osg::Node* getOrCreateSensorNode(
int diguyMat);
261 virtual std::string saveFiles();
264 virtual void createDescBackups();
273 virtual void initSystem();
276 virtual void createParticleDrawable();
279 virtual bool hasDescription(
const std::string& name);
281 virtual void slot_reloadShaders();
284 virtual void setWireFrameMode(
bool wireframeMode);
287 virtual void setTextureMode(
bool textureMode);
295 virtual void updateParticles(
double simTime);
298 bool getTerrainOrPropIntersection(
const osg::Vec3d& startPos,
const osg::Vec3d& endPos,
299 osg::Vec3d& result)
const;
302 virtual void addGlobalForce(
DtFxForce* force);
305 virtual void removeGlobalForce(
DtFxForce* force);
308 const DtFxForceArray& globalForces()
const;
311 DtFxForceArray& globalForces();
314 const DtFxCollisionObjectArray& collisionObjects()
const;
317 DtFxCollisionObjectArray* collisionObjectsPtr();
322 tbb::mutex& systemDataMutex();
325 tbb::mutex& lightMutex();
328 const std::set<std::string>& fileNamesList();
331 DtFxParticleSystemArray& previewArray();
334 DtFxParticleSystemArray& systemArray();
337 DtFxParticleSystemHolderArray& testHolderArray();
340 virtual bool* previewAutoMovePtr();
342 virtual float* previewAutoMoveSpeedPtr();
343 virtual bdiVec3f* previewAutoMoveRadiusPtr();
346 virtual void recompileScripts();
354 virtual bool anyToUpdateCullDraw(
void);
362 virtual void update_preview(
const float quantum);
363 virtual void cull(DtFxParticleSystemArray& input, osg::Polytope& polytope,
bool shadow_pass, std::vector< DtFxParticleSystem*>& results);
369 virtual bool anyActive(DtFxParticleSystemArray& input);
372 virtual void slot_coordinateSystemChanged();
double myLastUpdateTime
Definition: DtFxParticleSystemManager.h:434
int myTotalVertCount
Definition: DtFxParticleSystemManager.h:429
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:430
bdiFarPosition myPreviewCenter
Definition: DtFxParticleSystemManager.h:412
tbb::mutex m_mutex_critical_data
Definition: DtFxParticleSystemManager.h:376
DtFxParticleSystemManager is the manager for all the particle systems and descriptions diguy sdk comm...
Definition: DtFxParticleSystemManager.h:47
float myStatsUpdateTime
Definition: DtFxParticleSystemManager.h:426
float myWindDirection
Definition: DtFxParticleSystemManager.h:409
std::vector< DtSceneRoot > DtSceneRootList
A list of DtOsgRenderer::SceneRoots.
Definition: DtSceneRoot.h:133
class that allows clients to add collision objects (no export of virtual base class) ...
Definition: DtFxCollisionVolumeInterface.h:18
bdiFarPosition myEyePosition
Definition: DtFxParticleSystemManager.h:421
float myStatsDrawLastTime
Definition: DtFxParticleSystemManager.h:428
DT_DLL_tdbutil void ps(int indent_level)
bdiParticleDescArray m_descs
Definition: DtFxParticleSystemManager.h:383
Definition: featureContext.h:37
int m_draw_debug_visuals
Definition: DtFxParticleSystemManager.h:401
DtOsgIntersector is the OSG-specific implementation of the DtIntersector class. It provides a variety...
Definition: DtOsgIntersector.h:67
tbb::mutex m_mutex_texture_data
Definition: DtFxParticleSystemManager.h:378
std::vector< DtFxParticleSystem * > myViewFrustumSystems
Definition: DtFxParticleSystemManager.h:414
DtFxParticleSystemArray m_preview_array
Definition: DtFxParticleSystemManager.h:392
virtual void set_draw_placeholder_master_switch(int draw)
compatibility with diguy effects
Definition: DtFxParticleSystemManager.h:181
#define DT_DLL_VRVFX
Definition: vrvFx.h:20
DtOsgIntersector * myIntersector3dModelSet
Definition: DtFxParticleSystemManager.h:446
Contains DLL export macros.
bdiParticleDescArray m_init_texture_queue
Definition: DtFxParticleSystemManager.h:386
virtual int get_draw_placeholder_master_switch() const
compatibility with diguy effects
Definition: DtFxParticleSystemManager.h:183
std::vector< DtFxDebugDrawCallbackInterface * > myExtraDebugDrawObjects
Definition: DtFxParticleSystemManager.h:444
float m_water_height
Definition: DtFxParticleSystemManager.h:402
DtFxParticleSystemArray m_trans_systems
Definition: DtFxParticleSystemManager.h:390
Contains particle system class.
DtSceneRootList myIntersectionRoots
Definition: DtFxParticleSystemManager.h:448
DtFxParticleVertex * m_vertbuffer
Definition: DtFxParticleSystemManager.h:406
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:166
DtDe & myDe
Definition: DtFxParticleSystemManager.h:418
DtFxCollisionObjectArray myCollisionObjects
Definition: DtFxParticleSystemManager.h:423
std::set< std::string > myFileNamesList
Definition: DtFxParticleSystemManager.h:413
DtSignalConnectionManager myConnections
Definition: DtFxParticleSystemManager.h:416
bdiVec3f myPreviewAutoMoveRadius
Definition: DtFxParticleSystemManager.h:440
virtual void set_draw_placeholder(int draw)
compatibility with diguy effects
Definition: DtFxParticleSystemManager.h:177
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:411
virtual int get_draw_placeholder() const
compatibility with diguy effects
Definition: DtFxParticleSystemManager.h:179
tbb::mutex m_mutex_light_objects
Definition: DtFxParticleSystemManager.h:381
DtFxParticleDesc * m_preview_desc
Definition: DtFxParticleSystemManager.h:399
bool myPreviewAutoMove
public to allow the UI to edit
Definition: DtFxParticleSystemManager.h:437
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
std::map< int, osg::ref_ptr< osg::Node > > mySensorMap
Definition: DtFxParticleSystemManager.h:420
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:230
Contains makVrv::DtSceneRoot class.
Base class to provide boost signal/slot management.
bdiParticleDescArray m_backup_descs
Definition: DtFxParticleSystemManager.h:384
class that wraps the particle manager in vrvFx in a vrv friendly layer
Definition: DtParticleSystemManagerInterface.h:36
float myStatsDrawTime
Definition: DtFxParticleSystemManager.h:427
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:185
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:70
osg::Polytope myCullPolytop
Definition: DtFxParticleSystemManager.h:442
float myPreviewAutoMoveSpeed
public to allow the UI to edit
Definition: DtFxParticleSystemManager.h:439
osg::ref_ptr< osg::MatrixTransform > myParticleRendererGroup
Definition: DtFxParticleSystemManager.h:433
osg::ref_ptr< DtFxOsgParticleDrawable > myFxOsgParticleDrawable
Definition: DtFxParticleSystemManager.h:419
DtFxParticleSystemHolderArray m_test_holder_array
array for additional test systems
Definition: DtFxParticleSystemManager.h:395
DtFxParticleSystemArray m_psystems
Definition: DtFxParticleSystemManager.h:388
int m_clear_derived_update_flag_on_next_update
Definition: DtFxParticleSystemManager.h:403
int myNumSystemsDrawn
Definition: DtFxParticleSystemManager.h:431
DtFxForceArray m_global_forces
Definition: DtFxParticleSystemManager.h:397
a subclass of bdiParticleDesc, currently reimplements all of configuration file reading and writing...
Definition: DtFxParticleSystem.h:113
float myWindSpeed
Definition: DtFxParticleSystemManager.h:408