VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
visualEditors.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2014 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 #pragma once
9 
10 
17 
18 #include <QWidget>
19 #include <QDialog>
20 
21 class QComboBox;
22 class QLabel;
23 class QPushButton;
24 class QTreeWidget;
25 class QFontMetrics;
26 class QLineEdit;
27 class QTreeWidgetItem;
28 class QRadioButton;
29 class QString;
30 class QCheckBox;
35 class QHBoxLayout;
36 class QGridLayout;
37 
38 namespace makVrv
39 {
40  class DtDe;
41  class DtElementDefinition;
42  class DtVisualizerDefinition;
43  class DtVisualizerDefinitionSet;
44  class DtModelDefinitionComboBox;
45  class DtDeselectableTreeWidget;
46  class DtUnicode;
47  class DtModelDefinitionInstanceEditorWidget;
48  class DtModelDefinitionManager;
49 }
50 
53 {
54  Q_OBJECT
55 
56 public:
57 
59  DtVisualEditor(makVrv::DtDe& appDe, makVrv::DtDe& de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
60 
62  virtual ~DtVisualEditor() override;
63 
65 
66  virtual void setDiGuyData(const DtUiElementEvent&) {};
67 
68  virtual void enableVisualizer(bool);
69 
70  virtual bool isValid() const;
71 
73  {
74  return myVisualizerDefinitionSet;
75  }
76 
78  {
79  return myVisualizerDefinition;
80  }
81 
84 
85  virtual void setObjectType(const DtEntityType& t);
86 
87  virtual void setShowingSpotReports(bool b) { myShowingSpotReports = b; };
88 
89  virtual void reeditVisualizers(const QString& title = "") {};
90 
91  virtual void edit(DtDisplayDefinitionWidget::AskToChangeIfShared, const QString& title) = 0;
92 
93 signals:
94  void modified(bool);
95  void modelDefinitionModified();
96  void finalizeModelChange();
97  void uiElementEvent(const DtUiElementEvent&);
98  void redisplayListIcons();
99  void diGuyDataChanged(const DtDiGuyInformation&);
100 
101 protected:
110  DtEntityType myObjectType;
113 };
114 
115 typedef DtVisualEditor* (*DtEditorCreatorFcn)(makVrv::DtDe&, QWidget*);
116 
118 {
119  Q_OBJECT
120 
121 public:
123  DtTacticalGraphicEditor(makVrv::DtDe& appDe, makVrv::DtDe& de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
124 
126  virtual ~DtTacticalGraphicEditor() override;
127 
128  static DtVisualEditor* create(makVrv::DtDe&, makVrv::DtDe&, QWidget*);
131  virtual void edit(DtDisplayDefinitionWidget::AskToChangeIfShared, const QString& title) override;
132 
133 public slots:
134  virtual bool selectSchema();
135  virtual void selectTexture();
136  virtual void selectModelDefinition();
137 
138 protected:
139  virtual bool selectSchema(const QString&);
140  virtual void setupForNewSchema(const std::string& schema);
141  virtual void replaceVisualizerDefinition(const makVrv::DtVisualizerDefinition* copy);
142 
143 public:
144  QGridLayout* mySchemaLayout;
148 
153 };
154 
156 {
157  Q_OBJECT
158 
159 public:
161  DtModelDefinitionEditor(makVrv::DtDe& appDe, makVrv::DtDe& de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
162 
164  virtual ~DtModelDefinitionEditor() override;
165 
166  static DtVisualEditor* create(makVrv::DtDe&, makVrv::DtDe&, QWidget*);
169  virtual void setObjectType(const DtEntityType&) override;
170 
171  virtual void reeditVisualizers(const QString& title = "") override;
172  virtual void edit(DtDisplayDefinitionWidget::AskToChangeIfShared, const QString& title) override;
173 
174 protected:
175  virtual void revertDiGuyInformation();
176  virtual void updateDiGuyInformation(Dt3DDefinitionSelectionDialog*, bool createModelDefinitionsIfMissing = false);
177  virtual void select3DModelDefinition(const QString& title);
178 
179 protected slots:
180  virtual void select3DModelDefinition();
181  virtual void setModelValue(const makVrv::DtUnicode&, bool useDiGuy);
182  virtual void setModelValue(const std::vector<std::string>&, bool useDiGuy);
183  virtual void diGuyDataChangedSlot(const DtDiGuyInformation& diGuyData);
184  virtual void finalizeEditingAccept();
185  virtual void finalizeEditingCancel();
186 
187 public:
195 };
196 
198 {
199  Q_OBJECT
200 
201 public:
202  DtSymbolEditorDialog(makVrv::DtDe&, makVrv::DtDe& appDe, QWidget* parent, const DtEntityType& o, bool useMilStd);
203 
204  virtual ~DtSymbolEditorDialog() override;
205 
206  bool useMilStd() const;
207  makVrv::DtUnicode milStdFont() const;
208  makVrv::DtUnicode milStdFill() const;
209 
210  virtual void setup(makVrv::DtVisualizerAttributeFontGlyph* myMilStdAttribute,
212  bool forceEffectsGlyph);
213 
215 
216 protected:
217  virtual void setupMilStd();
218  virtual void setupImageSymbol();
219  virtual void addGlyphRange( unsigned int first,
220  unsigned int last, QFontMetrics &mets, QTreeWidget* widget );
221 
222  virtual void initializeMilStdValues();
223  virtual void initializeImageSymbolValues();
224 
225 protected slots:
226  virtual void visualizerTypeChanged();
227  virtual void fontSelectionChanged();
228  virtual void fontEditChanged();
229  virtual void selectImageDefinition();
230  virtual void setImageValueForEditingForce(const std::string&);
231  virtual void checkForceEffectsGlyph();
232 
233 signals:
234  void fontChanged(const makVrv::DtUnicode&, const makVrv::DtUnicode&, bool, bool);
236  void modelDefinitionModified();
237 
238 public:
240  QWidget* myMilStd;
241  QRadioButton* myUseMilStd;
249 
250  QWidget* myImageSymbol;
251  QRadioButton* myUseImage;
253 
254 protected:
255  std::map<int, QTreeWidgetItem*> myItemMap;
256 
262  DtEntityType myObjectType;
263 };
264 
266 {
267  Q_OBJECT
268 
269 public:
271  const DtEntityType& o, bool useDiGuy, bool canSelectDIGuy = true);
272 
273  virtual ~Dt3DDefinitionSelectionDialog() override;
274 
275  virtual bool useDiGuy() const;
276  virtual void setup(const makVrv::DtUnicode& modelDef, const DtDiGuyInformation& diGuyData);
277  DtString getCurrentCharacter() const;
278  DtString getCurrentAnimation() const;
279  const AlternateNamesList& getTaskableAnimationList() const;
280  DtString getCurrentAppearance() const;
281  bool useRandomAppearances() const;
282  void getRandomAppearances(DtRwNLengthStringVector*) const;
283  bool randomAppearancesChanged() const;
284  DtString getCurrentHandItem() const;
285  bool useRandomHandItems() const;
286  void getRandomHandItems(DtRwNLengthStringVector*) const;
287  bool randomHandItemsChanged() const;
288  DtString getCurrentHead() const;
289  bool useRandomHeads() const;
290  void getRandomHeads(DtRwNLengthStringVector*) const;
291  bool randomHeadsChanged() const;
292  bool getDiGuyEnabled() const;
293  virtual void updateDiGuyDataFromDialog();
294 
295  virtual void generateCharacterDefinitions(bool allPossible, bool setInModelDef = false);
296  virtual std::string appearanceFromModelDefinition(const std::string& modelDef) const;
297 
298 protected:
299  virtual void setupDiGuy();
300  virtual void setup3DModelDefinition();
301  virtual std::string diGuyModelDefinition(const DtString& character,
302  const DtString& appearance, bool createIfMissing = true);
303 
304 public slots:
305  virtual void visualizerTypeChanged();
306 
307 protected slots:
308  virtual void set3DModel(const std::string&);
309  virtual void diGuyCharacterChanged();
310  virtual void diGuyCharacterChangedFromDialog();
311  virtual void diGuyAppearanceChangedFromDialog();
312  virtual void handItemChangedFromDialog();
313  virtual void headChangedFromDialog();
314  virtual void generateAllPossible();
315 
316 signals:
317  void modelChanged(const makVrv::DtUnicode&, bool);
318  void modelListChanged(const std::vector<std::string>&, bool);
319  void modelDefinitionModified();
320  void uiElementEvent(const DtUiElementEvent&);
321  void diGuyDataChanged(const DtDiGuyInformation&);
322  void finalizeModelChange();
323 
324 protected:
326  QRadioButton* myUseDiGuy;
327  QRadioButton* myUse3DModel;
332  DtEntityType myObjectType;
335 };
336 
338 {
339  Q_OBJECT
340 
341 public:
343  DtSymbolEditor(makVrv::DtDe& appDe, makVrv::DtDe& de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
344 
346  virtual ~DtSymbolEditor() override;
347 
350 
351  static DtVisualEditor* create(makVrv::DtDe&, makVrv::DtDe&, QWidget*);
352 
353  virtual void addMilStdDefinition();
354  virtual void addImageSymbolDefinition();
355  virtual void enableIconVisualizer(bool);
356 
357  virtual void setEnabled(bool b) { DtVisualEditor::setEnabled(b); };
358  virtual void setCenterIcon(bool);
359 
360  virtual void edit(DtDisplayDefinitionWidget::AskToChangeIfShared, const QString& title) override;
361 
362 protected:
363  virtual void useMilStd();
364  virtual void useImageSymbol();
365 
366  virtual makVrv::DtElementDefinition* findParent();
367  virtual void updateVisualizersEnabled(bool useMilStd);
368 
369  virtual void setEnabled(int, bool);
370  virtual void reeditVisualizers(const QString& title = "") override;
371  virtual void editVisualizers(const QString& title);
372 
373 protected slots:
374  virtual void editVisualizers();
375 
376  virtual void setMilStdValues(const makVrv::DtUnicode&, const makVrv::DtUnicode&, bool forceEffectsGlyph, bool noFill);
377  virtual void setImageSymbolValues(const makVrv::DtVisualAttributeForceSpecificString::ForceTypeToUnicodeMap&);
378  virtual QSize getSmallestSizeImage(const makVrv::DtVisualAttributeForceSpecificString::ForceTypeToUnicodeMap&) const;
379 
380 public:
383 
384 protected:
388 
391 
394 };
395 
397 {
398  Q_OBJECT
399 
400 public:
401  DtModelDefinitionSelectionDialog(makVrv::DtDe& myDe, makVrv::DtDe& appDe, QWidget* parent, const DtEntityType& o, bool is2D = false, bool addButtons = true);
402 
403  virtual ~DtModelDefinitionSelectionDialog() override;
404  virtual void setDisplayDefinitionWidget(DtDisplayDefinitionWidget* d) { myDisplayDefinitionWidget = d; };
405 
406  virtual void setDefault(const QString&);
407 
408  virtual std::string selectedInstance() const;
409  virtual void selectFilter( const std::string& filter );
410 
411  void setModelDefinitionManager(makVrv::DtModelDefinitionManager* m) { myModelDefinitionManager = m; };
412 
414  {
415  return myModelDefinitions;
416  }
417 
418  virtual void setDefinitionFilter( const std::string& filter );
419 
420 protected:
421  virtual void createModelDefinition(const std::string& definitionName, const std::string& schema );
422  virtual void setupInstances();
423  virtual void setupFilters();
424  virtual void definitionSelected(const std::string& s);
425 
426 signals:
427  void modelChanged(const std::string&);
428  void modelDefinitionModified();
429 
430 protected:
436  std::string myFilter;
437  bool myIs2D;
438  QString myCurValue;
439  DtEntityType myObjectType;
440 };
441 
444 {
445  Q_OBJECT
446 
447 public:
448  DtVrfModelDefinitionInstanceEditorWidget(makVrv::DtDe& de, makVrv::DtDe& appDe, QWidget* parent, bool is2D);
449 
450  virtual ~DtVrfModelDefinitionInstanceEditorWidget() override;
451 
452  virtual void on_myAddButton_clicked() override;
453 
454  boost::signals2::signal<void ()> signal_doubleClicked;
455 
456 protected slots:
457  virtual void itemDoubleClicked(QTreeWidgetItem* item, int col);
458 
459 protected:
461  bool myIs2D;
462 };
makVrv::DtModelDefinitionInstanceEditorWidget * modelDefinitions()
Definition: visualEditors.h:413
DtEntityType myObjectType
Definition: visualEditors.h:110
makVrv::DtDe & myDe
Definition: visualEditors.h:257
virtual void setEnabled(bool b)
Definition: visualEditors.h:357
boost::function< void()> AskToChangeIfShared
Definition: displayDefinitionWidget.h:188
makVrv::DtVisualizerAttributeFontGlyph * myMilStdFill
Definition: visualEditors.h:386
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
makVrv::DtModelDefinitionManager * myModelDefinitionManager
Definition: visualEditors.h:432
makVrv::DtDe & myAppDe
Definition: visualEditors.h:258
QPushButton * mySelect
Definition: visualEditors.h:190
The model definition manager is responsible to managing all of the model definitions the IG knows abo...
Definition: DtModelDefinitionManager.h:78
std::string myFilter
Definition: visualEditors.h:436
QLineEdit * mySchema
Definition: visualEditors.h:146
void setModelDefinitionManager(makVrv::DtModelDefinitionManager *m)
Definition: visualEditors.h:411
DtModelDefinitionEditor * myEditor
Definition: visualEditors.h:334
bool myInitiallyUseDiGuy
Definition: visualEditors.h:330
DtModelDefinitionSelectionDialog * myModelDefinitions
Definition: visualEditors.h:328
makVrv::DtVisualizerAttributeFontGlyph * myMilStdAttribute
Definition: visualEditors.h:385
makVrv::DtDe & myAppDe
Definition: visualEditors.h:460
QLabel * myTexture
Definition: visualEditors.h:152
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
Definition: displayDefinitionWidget.h:183
virtual void setShowingSpotReports(bool b)
Definition: visualEditors.h:87
DtDiGuyInformation myDiGuyData
Definition: visualEditors.h:191
virtual void setDiGuyData(const DtUiElementEvent &)
Definition: visualEditors.h:66
QGridLayout * mySchemaLayout
Definition: visualEditors.h:144
std::map< int, DtUnicode > ForceTypeToUnicodeMap
Definition: DtVisualizerAttribute.h:425
DtEntityType myObjectType
Definition: visualEditors.h:262
virtual void reeditVisualizers(const QString &title="")
Definition: visualEditors.h:89
const makVrv::DtVisualizerDefinition * myVisualizerDefinition
Definition: visualEditors.h:105
bool myCenterIcon
Definition: visualEditors.h:392
bool myUseMilStd
Definition: visualEditors.h:393
int myEditingForce
Definition: visualEditors.h:239
QWidget * myImageSymbol
Definition: visualEditors.h:250
Definition: visualEditors.h:337
QRadioButton * myUse3DModel
Definition: visualEditors.h:327
A widget for creating new model definition instances.
Definition: DtModelDefinitionInstanceEditorWidget.h:21
The makVrv::DtVisualizerDefinitionSet is a collection of makVrv::DtVisualizerDefinition instances...
Definition: DtVisualizerDefinitionSet.h:28
bool myCanUseDIGuy
Definition: visualEditors.h:193
bool myIsAggregate
Definition: visualEditors.h:194
Symbol Force-specific string visual attribute.
Definition: DtVisualizerAttribute.h:420
const makVrv::DtVisualizerDefinitionSet * visualizerDefinitionSet() const
Definition: visualEditors.h:72
virtual void setDisplayDefinitionWidget(DtDisplayDefinitionWidget *d)
Definition: visualEditors.h:404
makVrv::DtElementDefinition * myElementDefinition
Definition: visualEditors.h:104
std::vector< AlternateNamesPair > AlternateNamesList
Definition: diGuyCharacterData.h:29
QWidget * myMilStd
Definition: visualEditors.h:240
QPushButton * myEdit
Definition: visualEditors.h:382
makVrv::DtModelDefinitionInstanceEditorWidget * myModelDefinitions
Definition: visualEditors.h:431
virtual void setup(makVrv::DtElementDefinition *, const makVrv::DtVisualizerDefinition *, const makVrv::DtVisualizerDefinitionSet *, makVrv::DtModelSetId m)
A simple editor widget with an embedded de.
Definition: visualEditors.h:52
QLineEdit * myModelDefinition
Definition: visualEditors.h:189
QString myTitleToUseOnReedit
Definition: visualEditors.h:112
bool myIs2D
Definition: visualEditors.h:437
makVrv::DtDe & myDe
Definition: visualEditors.h:102
makVrv::DtDe & myAppDe
Definition: visualEditors.h:435
makVrv::DtDe & myAppDe
Definition: visualEditors.h:333
const makVrv::DtVisualizerAttributeFontGlyph * myMilStdFill
Definition: visualEditors.h:260
bool myShowingSpotReports
Definition: visualEditors.h:111
QLineEdit * myFillEdit
Definition: visualEditors.h:248
QLabel * myLabel
Definition: visualEditors.h:145
boost::signals2::signal< void()> signal_doubleClicked
Definition: visualEditors.h:454
QLabel * myTextureLabel
Definition: visualEditors.h:149
The element definition class contains the element definition information. The makVrv::DtElementDefini...
Definition: DtElementDefinition.h:26
const makVrv::DtVisualizerDefinitionSet * myVisualizerDefinitionSet
Definition: visualEditors.h:106
bool myIs2D
Definition: visualEditors.h:461
DtEntityType myObjectType
Definition: visualEditors.h:332
DtDisplayDefinitionWidget * myParent
Definition: visualEditors.h:109
Definition: visualEditors.h:117
bool myModified
Definition: visualEditors.h:108
virtual void edit(DtDisplayDefinitionWidget::AskToChangeIfShared, const QString &title)=0
Definition: visualEditors.h:197
virtual void setObjectType(const DtEntityType &t)
QPushButton * mySelect
Definition: visualEditors.h:147
bool myCanUseDIGuy
Definition: visualEditors.h:331
QCheckBox * myNoFill
Definition: visualEditors.h:243
makVrv::DtModelSetId myModelSet
Definition: visualEditors.h:107
int myImageSymbolDefinition
Definition: visualEditors.h:390
QRadioButton * myUseImage
Definition: visualEditors.h:251
int myMilStdDefinition
Definition: visualEditors.h:389
QLabel * myUsing
Definition: visualEditors.h:381
QString myCurValue
Definition: visualEditors.h:438
Definition: visualEditors.h:396
const makVrv::DtVisualizerAttributeFontGlyph * myMilStdAttribute
Definition: visualEditors.h:259
QTreeWidget * myFonts
Definition: visualEditors.h:242
Definition: visualEditors.h:265
Font glyph type visualizer attribute.
Definition: DtVisualizerAttribute.h:375
A definition of a visualizer. Visualizer definition are always members of a visualizer definition set...
Definition: DtVisualizerDefinition.h:26
QCheckBox * myForceEffectsGlyph
Definition: visualEditors.h:244
Contains the DtDiGuyInformation class declaration.
QRadioButton * myUseDiGuy
Definition: visualEditors.h:326
DtDisplayDefinitionWidget * myDisplayDefinitionWidget
Definition: visualEditors.h:433
QRadioButton * myUseMilStd
Definition: visualEditors.h:241
The DtUiElement class is the base for which all UI elements are defined. If you wish to create a new ...
Definition: uiElement.h:97
makVrv::DtDe & myAppDe
Definition: visualEditors.h:103
QTreeWidget * myImages
Definition: visualEditors.h:252
DtDiGuyConfigurationWidget * myDiGuyWidget
Definition: visualEditors.h:325
QLineEdit * myTextureLineEdit
Definition: visualEditors.h:150
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:76
makVrv::DtDe & myDe
Definition: visualEditors.h:329
Contains information about the current DI-Guy character instance and some of its available options...
Definition: diGuyInformation.h:22
QPushButton * myTextureEdit
Definition: visualEditors.h:151
QLabel * myLabel
Definition: visualEditors.h:188
DtModelSetId
Definition: DtModelSetEnums.h:19
This class manages the dialog box that appears when the user modifies a DI-Guy entity in the Simulati...
Definition: diGuyConfigurationWidget.h:48
makVrv::DtDe & myDe
Definition: visualEditors.h:434
void setDisplayWidgetParent(DtDisplayDefinitionWidget *p)
Definition: visualEditors.h:82
!!!!!!!!!!! DtVrfModelDefinitionInstanceEditorWidget
Definition: visualEditors.h:443
QLabel * myFillLabel
Definition: visualEditors.h:247
std::map< int, QTreeWidgetItem * > myItemMap
Definition: visualEditors.h:255
Contains makVrv::DtModelDefinitionInstanceEditorWidget class.
#define DT_DLL_simulationObjectEditorimpl
This file is used to determine how to build.
Definition: simulationObjectEditorImplDefines.h:33
QLineEdit * myFontEdit
Definition: visualEditors.h:246
DtEntityType myObjectType
Definition: visualEditors.h:439
DtDisplayDefinitionWidget * displayWidgetParent()
Definition: visualEditors.h:83
makVrv::DtVisualAttributeForceSpecificString * myImageSymbolAttribute
Definition: visualEditors.h:387
const makVrv::DtVisualAttributeForceSpecificString * myImageSymbolAttribute
Definition: visualEditors.h:261
Definition: visualEditors.h:155
const makVrv::DtVisualizerDefinition * visualizerDefinition() const
Definition: visualEditors.h:77
DtDiGuyInformation myOriginalDiGuyData
Definition: visualEditors.h:192
QLabel * myFontLabel
Definition: visualEditors.h:245

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)