VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
bdiQWidgetParticleSystem.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2019 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
6 
10 
11 #pragma once
12 
13 #include <vrvFxQt/bdiQWidgetParticleSystem_uic.hpp>
15 
16 
17 #include <QtCore/QTimer>
18 
19 class bdiQTextEdit;
20 
21 class QTreeWidgetItem;
22 
23 class bdiScenario;
24 class bdiScenarioApp;
25 class bdiLight;
26 
27 class diguyScenario;
28 class bdiParticleDesc;
29 
30 namespace makVrv
31 {
32  class DtParticleSystemModelAgent;
33  class DtEntityFacade;
34  class bdiQWidgetScenarioElementSelector2;
35  class bdiQPropTreeItemLightCombo;
36  class bdiQParticlePropTreeContainer;
37  class bdiQPropTree;
38  class bdiQPropTreeItem;
39  class bdiQPropTreeItemCombo;
40  class bdiQPropTreeItemFarPosition;
41  class bdiQPropTreeItemEdit;
42  class bdiQPropTreeItemColor;
43  class bdiQWidgetKeyFrameEditor;
44 
45  class DtDe;
46  class DtFxParticleSystemManager;
47  class DtFxParticleDesc;
48  class DtFxParticleSystem;
49 
52  class bdiQWidgetParticleSystem : public QWidget, public Ui::bdiQWidgetParticleSystem_uic, public DtFxDebugDrawCallbackInterface
53  {
54  Q_OBJECT;
55  public:
56 
57  bdiQWidgetParticleSystem(makVrv::DtDe & de, makVrv::DtFxParticleSystemManager* manager, int show_selector = 1, QWidget* parent = 0,
58  const char* name = 0, Qt::WindowFlags fl = 0);
59  virtual ~bdiQWidgetParticleSystem();
60 
61  virtual void hideEvent(QHideEvent *event);
62 
64 
65  void set_particle_desc(DtFxParticleDesc* particle_desc, int force_update = 0);
66 
67  void set_preview_location(double x, double y, double z);
68  bool isPreviewActive();
71 
73  virtual void drawDebugLines(const bdiFarPosition& eyePoint, const bdiMat4f& geocentricMatrix,
74  bdiVec3fArray& verts, bdiVec4fArray& colors);
75 
76  virtual void systemShutDown();
78  virtual void update_size_keys();
79  virtual void update_color_keys();
80 
81  public slots:
82 
86 
93  void slot_button_load_desc();
95 
96  void slot_read_name();
97  void slot_convert_clicked();
102 
103  void slot_save_file();
104 
105  void slot_origin_changed();
106  // right click context menu
107  void slot_revertItem();
108  void slot_saveItem();
110  //void slot_key_frame_editor();
111 
112  // preview
113  void slot_num_preview_changed(int);
114  void slot_restart_preview();
115  void slot_step_preview();
116  void slot_toggle_play_paused(bool);
117  void slot_recompileScripts();
118  void slot_toggle_wireframe_mode(bool);
119  void slot_toggle_texture_mode(bool);
120 
121  void slot_timer_trigger();
124  void slot_debugMenuChecked();
126 
128 
129  signals:
130 
131  void desc_list_changed();
132  void signal_show_window_log(int);
133 
134 
135  protected:
136 
137  void build_ui(int force_ui_update = 0);
138 
139  void create_size_keys();
140  void create_color_keys();
141 
144 
145  void reset_ui();
146  void build_light_ui(bdiQPropTreeItem* pRoot);
147  void restoreState(void);
148  void saveState(void);
149  // Scaled font size to take into account windows Display Settings scaling
150  int headerFontSize(void);
151 
152  protected:
153 
155  bdiScenarioApp* m_app;
158  QString m_string_name;
161  bdiLight* m_light;
170 
174 
175  // legacy osg system previewing remove when system is gone
178  QStringList myLegacySystems;
179  DtParticleSystemModelAgent* myLegacyAgent;
181  double myPreviewPosition[3];
182  float myFontScale;
183 
184  QTimer* m_update_timer;
185 
186  QMap<QString, bool> m_state_map;
189 
195 
200 
209 
214  QIcon myAxisIcon;
217  QIcon myColorIcon;
218  QIcon mySizeIcon;
220  };
221 }
light UI control
Definition: bdiQParticlePropTreeClasses.h:60
virtual void drawDebugLines(const bdiFarPosition &eyePoint, const bdiMat4f &geocentricMatrix, bdiVec3fArray &verts, bdiVec4fArray &colors)
DtFxDebugDrawCallbackInterface.
QIcon mySizeIcon
Definition: bdiQWidgetParticleSystem.h:218
Definition: bdiQPropTreeItemCombo.h:107
QIcon myScriptsIcon
Definition: bdiQWidgetParticleSystem.h:206
QMap< QString, bool > m_state_map
Definition: bdiQWidgetParticleSystem.h:186
Core particle editing class.
Definition: bdiQWidgetParticleSystem.h:52
DtFxParticleSystemManager is the manager for all the particle systems and descriptions diguy sdk comm...
Definition: DtFxParticleSystemManager.h:41
void set_particle_desc(DtFxParticleDesc *particle_desc, int force_update=0)
bdiQPropTreeItemEdit * m_size_item
Definition: bdiQWidgetParticleSystem.h:168
void build_ui(int force_ui_update=0)
void createPreviewNodes(DtFxParticleSystem *pre)
bdiQPropTreeItemColor * m_color_item
Definition: bdiQWidgetParticleSystem.h:169
QAction * m_action_debug_lights
Definition: bdiQWidgetParticleSystem.h:191
Definition: bdiQPropTreeItemColor.h:28
bdiQPropTreeItem * m_global_objects_node
Definition: bdiQWidgetParticleSystem.h:167
QIcon myColorIcon
Definition: bdiQWidgetParticleSystem.h:217
Definition: bdiQParticlePropTreeClasses.h:99
bdiQPropTree * m_tree
Definition: bdiQWidgetParticleSystem.h:160
QIcon myRotationIcon
Definition: bdiQWidgetParticleSystem.h:210
QIcon myEmitterSizeIcon
Definition: bdiQWidgetParticleSystem.h:219
void build_light_ui(bdiQPropTreeItem *pRoot)
bdiQPropTreeItemEdit * m_previewIntensity
Definition: bdiQWidgetParticleSystem.h:165
QIcon myEmitterIcon
Definition: bdiQWidgetParticleSystem.h:207
QIcon myStreakIcon
Definition: bdiQWidgetParticleSystem.h:201
bdiQPropTreeItemCombo * myLegacyCombo
Definition: bdiQWidgetParticleSystem.h:176
Definition: bdiQPropTreeItem.h:28
makVrv::DtDe & myDe
Definition: bdiQWidgetParticleSystem.h:173
The DtEntityFacade is a facade around agents that make up an entity.
Definition: DtEntityFacade.h:35
int m_current_index
Definition: bdiQWidgetParticleSystem.h:171
Definition: bdiQPropTree_subclasses.h:105
Definition: bdiQWidgetScenarioElementSelector2.h:50
QIcon myVelocityVarIcon
Definition: bdiQWidgetParticleSystem.h:212
QString m_string_name
Definition: bdiQWidgetParticleSystem.h:158
virtual void systemShutDown()
particle manager is getting shut down.
bdiQPropTreeItemEdit general value editors
Definition: bdiQPropTreeItemEdit.h:22
float myFontScale
Definition: bdiQWidgetParticleSystem.h:182
QIcon myRenderingIcon
Definition: bdiQWidgetParticleSystem.h:208
virtual void hideEvent(QHideEvent *event)
QIcon myCollisionIcon
Definition: bdiQWidgetParticleSystem.h:213
DtParticleSystemModelAgent * myLegacyAgent
Definition: bdiQWidgetParticleSystem.h:179
DtParticleSystem is implementation of the particle system, vrvOsg communicates with it via DtParticle...
Definition: DtFxParticleSystem.h:389
bool m_updating_keyframe_editor
Definition: bdiQWidgetParticleSystem.h:188
bdiQWidgetKeyFrameEditor * m_keyframe_editor
Definition: bdiQWidgetParticleSystem.h:187
QTimer * m_update_timer
Definition: bdiQWidgetParticleSystem.h:184
Definition: bdiQWidgetKeyFrameEditor.h:28
int m_block_ui_rebuild
Definition: bdiQWidgetParticleSystem.h:172
DtFxParticleSystemManager * m_ps_manager
Definition: bdiQWidgetParticleSystem.h:156
bdiQPropTreeItemFarPosition * m_previewPosition
Definition: bdiQWidgetParticleSystem.h:163
void set_preview_location(double x, double y, double z)
QAction * m_action_debug_bounding_boxes
Definition: bdiQWidgetParticleSystem.h:197
QIcon myAxisIcon
Definition: bdiQWidgetParticleSystem.h:214
bdiQPropTreeItem * m_previewNode
Definition: bdiQWidgetParticleSystem.h:162
void slot_selected_selector_element(QTreeWidgetItem *lvi, QTreeWidgetItem *prev)
QIcon myLifetimeIcon
Definition: bdiQWidgetParticleSystem.h:203
QAction * m_action_debug_forces
Definition: bdiQWidgetParticleSystem.h:192
QAction * m_action_debug_velocities
Definition: bdiQWidgetParticleSystem.h:196
bdiScenarioApp * m_app
Definition: bdiQWidgetParticleSystem.h:155
bool myAttachToMouse
Definition: bdiQWidgetParticleSystem.h:199
double myPreviewPosition[3]
Definition: bdiQWidgetParticleSystem.h:181
DtEntityFacade * myLegacyFacade
Definition: bdiQWidgetParticleSystem.h:180
QAction * m_action_debug_all
Definition: bdiQWidgetParticleSystem.h:190
Contains the declaration for makVrv::DtFxDebugDrawCallbackInterface.
A simple interface for allowing the qt particle editor to draw lines at the right time...
Definition: DtFxDebugDrawCallbackInterface.h:23
QAction * m_action_debug_force_vectors
Definition: bdiQWidgetParticleSystem.h:193
QIcon myLightsIcon
Definition: bdiQWidgetParticleSystem.h:205
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
QIcon myExplosionIcon
Definition: bdiQWidgetParticleSystem.h:202
bdiQParticlePropTreeContainer * m_prop_widget
Definition: bdiQWidgetParticleSystem.h:159
bdiQPropTreeItem * myTestSystems
Definition: bdiQWidgetParticleSystem.h:177
bdiQPropTreeItem * m_global_forces_node
Definition: bdiQWidgetParticleSystem.h:166
DtFxParticleDesc * m_particle_desc
Definition: bdiQWidgetParticleSystem.h:157
QStringList myLegacySystems
Definition: bdiQWidgetParticleSystem.h:178
QIcon myReleaseFreqIcon
Definition: bdiQWidgetParticleSystem.h:216
QAction * m_action_debug_objects
Definition: bdiQWidgetParticleSystem.h:198
QIcon myChildrenIcon
Definition: bdiQWidgetParticleSystem.h:204
bdiLight * m_light
Definition: bdiQWidgetParticleSystem.h:161
QIcon myVelocityIcon
Definition: bdiQWidgetParticleSystem.h:211
a subclass of bdiParticleDesc, currently reimplements all of configuration file reading and writing...
Definition: DtFxParticleSystem.h:112
QAction * m_action_debug_force_vectors_3D
Definition: bdiQWidgetParticleSystem.h:194
bdiQPropTreeItemEdit * m_previewScale
Definition: bdiQWidgetParticleSystem.h:164
Definition: bdiQPropTree.h:51
QIcon myReleaseRateIcon
Definition: bdiQWidgetParticleSystem.h:215
bdiQWidgetParticleSystem(makVrv::DtDe &de, makVrv::DtFxParticleSystemManager *manager, int show_selector=1, QWidget *parent=0, const char *name=0, Qt::WindowFlags fl=0)
bdiQWidgetScenarioElementSelector2 * m_selector
Definition: bdiQWidgetParticleSystem.h:154

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)