VR-Forces 5.0.2 Developer's Guide
 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) 2021 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
6 
10 
11 #pragma once
12 
14 
15 #include <vrvFxQt/bdiQWidgetParticleSystem_uic.hpp>
17 
18 #include <QtCore/QTimer>
19 
20 class bdiQTextEdit;
21 
22 class QTreeWidgetItem;
23 class QToolButton;
24 
25 class bdiScenario;
26 class bdiScenarioApp;
27 class bdiLight;
28 
29 class diguyScenario;
30 class bdiParticleDesc;
31 
32 namespace makVrv
33 {
34  class DtParticleSystemModelAgent;
35  class DtEntityFacade;
36  class bdiQWidgetScenarioElementSelector2;
37  class bdiQPropTreeItemLightCombo;
38  class bdiQParticlePropTreeContainer;
39  class bdiQPropTree;
40  class bdiQPropTreeItem;
41  class bdiQPropTreeItemCombo;
42  class bdiQPropTreeItemFarPosition;
43  class bdiQPropTreeItemEdit;
44  class bdiQPropTreeItemColor;
45  class bdiQWidgetKeyFrameEditor;
46 
47  class DtDe;
48  class DtFxParticleSystemManager;
49  class DtFxParticleDesc;
50  class DtFxParticleSystem;
51 
55  {
56  Q_OBJECT;
57  public:
58 
59  bdiQWidgetParticleSystem(makVrv::DtDe & de, makVrv::DtFxParticleSystemManager* manager, int show_selector = 1, QWidget* parent = 0,
60  const char* name = 0, Qt::WindowFlags fl = 0);
61  virtual ~bdiQWidgetParticleSystem();
62 
63  virtual void hideEvent(QHideEvent *event);
64 
66 
67  void set_particle_desc(DtFxParticleDesc* particle_desc, int force_update = 0);
68 
69  void set_preview_location(double x, double y, double z);
70  bool isPreviewActive();
73 
75  virtual void drawDebugLines(const bdiFarPosition& eyePoint, const bdiMat4f& geocentricMatrix,
76  bdiVec3fArray& verts, bdiVec4fArray& colors);
77 
78  virtual void systemShutDown();
80  virtual void update_size_keys();
81  virtual void update_color_keys();
82 
83  public slots:
84 
90 
96  void slot_button_load_desc();
98 
99  void slot_read_name();
100  void slot_convert_clicked();
105 
106  void slot_save_file();
107 
108  void slot_origin_changed();
109  // right click context menu
111  void slot_revertItem();
112  void slot_saveItem();
114  //void slot_key_frame_editor();
115 
116  // preview
117  void slot_num_preview_changed(int);
118  void slot_restart_preview();
119  void slot_step_preview();
120  void slot_toggle_play_paused(bool);
121  void slot_recompileScripts();
122  void slot_toggle_wireframe_mode(bool);
123  void slot_toggle_texture_mode(bool);
124 
125  void slot_timer_trigger();
128  void slot_debugMenuChecked();
130 
132 
133  signals:
134 
135  void desc_list_changed();
136  void signal_show_window_log(int);
137 
138 
139  protected:
140 
141  void setupUi();
142 
143  void build_ui(int force_ui_update = 0);
144 
145  void create_size_keys();
146  void create_color_keys();
147 
150 
151  void reset_ui();
152  void build_light_ui(bdiQPropTreeItem* pRoot);
153  void restoreState(void);
154  void saveState(void);
155  // Scaled font size to take into account windows Display Settings scaling
156  int headerFontSize(void);
157 
158  protected:
159 
161 
163 
165  bdiScenarioApp* m_app;
169 
170  QString m_string_name;
173  bdiLight* m_light;
182 
186 
187  // legacy osg system previewing remove when system is gone
190  QStringList myLegacySystems;
191  DtParticleSystemModelAgent* myLegacyAgent;
194  double myPreviewPosition[3];
195  float myFontScale;
196 
197  QTimer* m_update_timer;
198 
199  QMap<QString, bool> m_state_map;
202 
208 
213 
214  // from old ui file
215  QGridLayout *gridLayout_2;
216  QSplitter *m_splitter;
218  QFrame *frame;
220  QFrame *m_prop_frame;
221  QGridLayout *gridLayout;
229  QSpacerItem *horizontalSpacer_2;
231  QGridLayout *gridLayout1;
236  QSpacerItem *spacer47;
237  QFrame *frame_2;
238  QHBoxLayout *horizontalLayout;
240  QHBoxLayout *m_preview_layout;
241  QHBoxLayout *m_global_debug_layout;
246  };
247 }
light UI control
Definition: bdiQParticlePropTreeClasses.h:60
virtual void drawDebugLines(const bdiFarPosition &eyePoint, const bdiMat4f &geocentricMatrix, bdiVec3fArray &verts, bdiVec4fArray &colors)
DtFxDebugDrawCallbackInterface.
QToolButton * m_button_wireframe
Definition: bdiQWidgetParticleSystem.h:245
Definition: bdiQPropTreeItemCombo.h:107
QMap< QString, bool > m_state_map
Definition: bdiQWidgetParticleSystem.h:199
DtFxParticleDesc * m_particle_isolated_desc
Definition: bdiQWidgetParticleSystem.h:168
Core particle editing class.
Definition: bdiQWidgetParticleSystem.h:54
QToolButton * m_button_auto_loop
Definition: bdiQWidgetParticleSystem.h:226
DtFxParticleSystemManager is the manager for all the particle systems and descriptions diguy sdk comm...
Definition: DtFxParticleSystemManager.h:47
void set_particle_desc(DtFxParticleDesc *particle_desc, int force_update=0)
QSplitter * m_splitter
Definition: bdiQWidgetParticleSystem.h:216
bdiQPropTreeItemEdit * m_size_item
Definition: bdiQWidgetParticleSystem.h:180
QToolButton * m_button_textures
Definition: bdiQWidgetParticleSystem.h:244
QPushButton * m_save_button
Definition: bdiQWidgetParticleSystem.h:242
void build_ui(int force_ui_update=0)
void createPreviewNodes(DtFxParticleSystem *pre)
bdiQPropTreeItemColor * m_color_item
Definition: bdiQWidgetParticleSystem.h:181
QGridLayout * gridLayout_2
Definition: bdiQWidgetParticleSystem.h:215
QAction * m_action_debug_lights
Definition: bdiQWidgetParticleSystem.h:204
Definition: bdiQPropTreeItemColor.h:30
QComboBox * m_library_combo
Definition: bdiQWidgetParticleSystem.h:235
bdiQPropTreeItem * m_global_objects_node
Definition: bdiQWidgetParticleSystem.h:179
QMenu * myMenu
Definition: bdiQWidgetParticleSystem.h:193
QVBoxLayout * myPropertyEditorAndPreviewLayout
Definition: bdiQWidgetParticleSystem.h:219
Definition: bdiQParticlePropTreeClasses.h:99
bdiQPropTree * m_tree
Definition: bdiQWidgetParticleSystem.h:172
QFrame * frame_2
Definition: bdiQWidgetParticleSystem.h:237
QCheckBox * m_check_preview_system
Definition: bdiQWidgetParticleSystem.h:222
void build_light_ui(bdiQPropTreeItem *pRoot)
bdiQPropTreeItemEdit * m_previewIntensity
Definition: bdiQWidgetParticleSystem.h:177
QGridLayout * gridLayout1
Definition: bdiQWidgetParticleSystem.h:231
QLabel * TextLabel3
Definition: bdiQWidgetParticleSystem.h:232
bdiQPropTreeItemCombo * myLegacyCombo
Definition: bdiQWidgetParticleSystem.h:188
QPushButton * myAdvancedDebuggingSettingsButton
Definition: bdiQWidgetParticleSystem.h:225
Definition: bdiQPropTreeItem.h:33
makVrv::DtDe & myDe
Definition: bdiQWidgetParticleSystem.h:185
QHBoxLayout * m_name_filesource_layout
Definition: bdiQWidgetParticleSystem.h:239
The DtEntityFacade is a facade around agents that make up an entity. This entity facade represents a ...
Definition: DtEntityFacade.h:35
int m_current_index
Definition: bdiQWidgetParticleSystem.h:183
Definition: bdiQPropTree_subclasses.h:109
Definition: bdiQWidgetScenarioElementSelector2.h:52
QSpinBox * m_spin_preview_count
Definition: bdiQWidgetParticleSystem.h:227
QString m_string_name
Definition: bdiQWidgetParticleSystem.h:170
virtual void systemShutDown()
DtFxDebugDrawCallbackInterface.
QPushButton * m_button_restart
Definition: bdiQWidgetParticleSystem.h:224
QPushButton * m_keys_button
Definition: bdiQWidgetParticleSystem.h:230
QPushButton * m_button_play_pause
Definition: bdiQWidgetParticleSystem.h:223
bdiQPropTreeItemEdit general value editors
Definition: bdiQPropTreeItemEdit.h:22
float myFontScale
Definition: bdiQWidgetParticleSystem.h:195
virtual void hideEvent(QHideEvent *event)
DtParticleSystemModelAgent * myLegacyAgent
Definition: bdiQWidgetParticleSystem.h:191
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
QLabel * label
Definition: bdiQWidgetParticleSystem.h:234
bool m_updating_keyframe_editor
Definition: bdiQWidgetParticleSystem.h:201
bdiQWidgetKeyFrameEditor * m_keyframe_editor
Definition: bdiQWidgetParticleSystem.h:200
QPushButton * m_button_step
Definition: bdiQWidgetParticleSystem.h:228
QFrame * m_prop_frame
Definition: bdiQWidgetParticleSystem.h:220
QSpacerItem * spacer47
Definition: bdiQWidgetParticleSystem.h:236
QTimer * m_update_timer
Definition: bdiQWidgetParticleSystem.h:197
Definition: bdiQWidgetKeyFrameEditor.h:28
QFrame * m_frame_selector
Definition: bdiQWidgetParticleSystem.h:217
int m_block_ui_rebuild
Definition: bdiQWidgetParticleSystem.h:184
DtFxParticleSystemManager * m_ps_manager
Definition: bdiQWidgetParticleSystem.h:166
bdiQPropTreeItemFarPosition * m_previewPosition
Definition: bdiQWidgetParticleSystem.h:175
void set_preview_location(double x, double y, double z)
QAction * m_action_debug_bounding_boxes
Definition: bdiQWidgetParticleSystem.h:210
bdiQPropTreeItem * m_previewNode
Definition: bdiQWidgetParticleSystem.h:174
void slot_selected_selector_element(QTreeWidgetItem *lvi, QTreeWidgetItem *prev)
QHBoxLayout * m_preview_layout
Definition: bdiQWidgetParticleSystem.h:240
QAction * m_action_debug_forces
Definition: bdiQWidgetParticleSystem.h:205
QHBoxLayout * m_global_debug_layout
Definition: bdiQWidgetParticleSystem.h:241
QAction * m_action_debug_velocities
Definition: bdiQWidgetParticleSystem.h:209
Base class to provide boost signal/slot management.
QHBoxLayout * horizontalLayout
Definition: bdiQWidgetParticleSystem.h:238
QLineEdit * m_edit_name
Definition: bdiQWidgetParticleSystem.h:233
bdiScenarioApp * m_app
Definition: bdiQWidgetParticleSystem.h:165
bool myAttachToMouse
Definition: bdiQWidgetParticleSystem.h:212
double myPreviewPosition[3]
Definition: bdiQWidgetParticleSystem.h:194
DtEntityFacade * myLegacyFacade
Definition: bdiQWidgetParticleSystem.h:192
QAction * m_action_debug_all
Definition: bdiQWidgetParticleSystem.h:203
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
QSpacerItem * horizontalSpacer_2
Definition: bdiQWidgetParticleSystem.h:229
QPushButton * m_show_col_planes
Definition: bdiQWidgetParticleSystem.h:243
QAction * m_action_debug_force_vectors
Definition: bdiQWidgetParticleSystem.h:206
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
bdiQParticlePropTreeContainer * m_prop_widget
Definition: bdiQWidgetParticleSystem.h:171
bdiQPropTreeItem * myTestSystems
Definition: bdiQWidgetParticleSystem.h:189
QList< QWidget * > myEnabledOnAdvancedDebuggingSettings
Definition: bdiQWidgetParticleSystem.h:162
bdiQPropTreeItem * m_global_forces_node
Definition: bdiQWidgetParticleSystem.h:178
DtFxParticleDesc * m_particle_desc
Definition: bdiQWidgetParticleSystem.h:167
QStringList myLegacySystems
Definition: bdiQWidgetParticleSystem.h:190
QAction * m_action_debug_objects
Definition: bdiQWidgetParticleSystem.h:211
DtSignalConnectionManager myConnections
Definition: bdiQWidgetParticleSystem.h:160
void slot_toggleAdvancedDebuggingSettings(bool)
bdiLight * m_light
Definition: bdiQWidgetParticleSystem.h:173
a subclass of bdiParticleDesc, currently reimplements all of configuration file reading and writing...
Definition: DtFxParticleSystem.h:113
QGridLayout * gridLayout
Definition: bdiQWidgetParticleSystem.h:221
QAction * m_action_debug_force_vectors_3D
Definition: bdiQWidgetParticleSystem.h:207
bdiQPropTreeItemEdit * m_previewScale
Definition: bdiQWidgetParticleSystem.h:176
Definition: bdiQPropTree.h:51
QFrame * frame
Definition: bdiQWidgetParticleSystem.h:218
void slot_particle_desc_isolated(DtFxParticleDesc *desc)
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:164

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)