VR-Forces 4.6 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
displayDefinitionWidget.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2012 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 #pragma once
9 
10 #include <vrvUtil/signalslib.h>
11 
17 #include <vlpi/entityType.h>
18 #include "ui_DtTacticalGraphicStylesUi.h"
21 
22 #include <vrvCore/DtWindow.h>
27 
28 #include <QImage>
29 #include <QWidget>
30 
31 class DtModelSetEntry;
32 class DtUiElementEvent;
33 class QComboBox;
34 class QHBoxLayout;
35 class QGroupBox;
36 class QLabel;
37 class QPushButton;
39 class DtSymbolEditor;
40 class DtMarkerVisualizer;
41 class QCheckBox;
42 class QLineEdit;
43 class QFrame;
44 class QSpinBox;
45 class QGridLayout;
46 class QStandardItem;
47 class QTreeWidget;
48 
49 namespace makVrf
50 {
51  class DtVrfObjectFacadeInterface;
52  class DtEnvironmentalFacadeCollection;
53 }
54 
55 namespace makVrv
56 {
57  class DtDe;
58  class DtPluginManager;
59  class DtOsgAdapterQtWidget;
60  class DtElementDefinitionManager;
61  class DtElementDefinitionNew;
62  class DtChannelManager;
63  class DtChannel;
64  class DtObserver;
65  class DtOsgObserverObject;
66  class DtWindowTextAgent;
67  class DtWidgetLabelAgent;
68 }
69 
71 
74 {
75  Q_OBJECT
76 
77 public:
78 
80  DtDisplayWidget(makVrv::DtDe& appDe, makVrv::DtDe* de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
81 
83  virtual ~DtDisplayWidget();
84 
85  makVrv::DtOsgAdapterQtWidget* adapterWidget();
86 
87  virtual void init();
88  virtual void quitting();
89 
90  virtual void buildAdapterWidget();
91 
92  virtual void buildTicker();
93 
94  const std::vector<int>& modelSets() const
95  {
96  return myModelSets;
97  }
98 
99  int observerMode(int i) const
100  {
101  std::map<int, int>::const_iterator iter = myModeKeyMap.find(i);
102 
103  if (iter != myModeKeyMap.end())
104  {
105  return iter->second;
106  }
107 
108  return 0;
109  }
110 
111  const std::map<int, int>& modeMap() const
112  {
113  return myModeKeyMap;
114  }
115 
116  boost::signal<void ()> signal_channelsInitialized;
117 
118  virtual void initializeObservers();
119 
120  QImage contents();
121 
122 protected:
123 
124  virtual void createIg();
125 
126  virtual void preIgInitialize();
127 
128  virtual void overrideIgFunctionality();
129 
130  virtual void igInitialize();
131 
132  virtual void postIgInitialize();
133  virtual void resizeEvent( QResizeEvent* event);
134 
135 protected:
139  std::vector<int> myModelSets;
140  std::map<int, int> myModeKeyMap;
141 };
142 
144 {
145 
146 public:
147 
149 
152 
153 protected:
154 
156 
157 };
158 
160 {
161  Q_OBJECT
162 
163 public:
164  typedef boost::function<void ()> AskToChangeIfShared;
165 
166  DtDisplayDefinitionWidget(makVrv::DtDe& appDe, QWidget* p);
167 
168  virtual ~DtDisplayDefinitionWidget();
169 
170  virtual void init();
171 
172  virtual void edit(const makVrf::DtEntityMapperKey&, bool move = true, bool fromSelection = false);
173  virtual void clearContents();
174 
176  {
177  return myDe;
178  }
179 
180  virtual bool hasOneDiGuy() const;
181 
182  virtual void revertExisting(const std::set<makVrf::DtEntityMapperKey>& key);
183 
184  virtual void updateStatus();
185 
186  virtual void preSimulationModelSetSave();
187 
188  virtual void simulationModelSetLoaded();
189 
190  virtual void cloneEntry(const DtEntityType& oldType, const DtEntityType& newType, DtModelSetEntry*);
191  virtual void uiEvent(const DtUiElementEvent&);
192 
193  virtual void setCompressedView(bool);
194  virtual void setStackedView(bool);
195  virtual QString visualBase() const;
196 
197  virtual void disable();
198  virtual void enable();
199  DtDisplayWidget* displayWidget() { return myDisplayWidget; };
200  virtual void updateSpecifics();
201  virtual MarkerColor determineMarkerColor(const int markNum);
202 
203  virtual void setOnlyVisualControlsEnabled(bool);
204  virtual bool askToChangeIfShared(AskToChangeIfShared);
205 
206  virtual void reeditForModelSet(int);
207 
208  boost::signal<void (bool)> signal_compressedChanged;
209 
210 protected:
211  virtual makVrv::DtUniqueID uniqueIDForModelSet() const;
212 
213  virtual void makeSureAllMilStdVisualizersAreTheSameAs(int modelSet);
214 
215  virtual void postInitialize();
216  virtual void reedit();
217 
220  virtual void setupVisualBases(const makVrv::DtElementDefinitionNew*);
221 
222  virtual bool setupEditor(int set, bool* hasCenteredIcon = 0);
223 
224  virtual void createNewEntry(const DtEntityType& newType, DtModelSetEntry* model, const DtEntityType& basedOnType = DtEntityType(),
225  bool resetTacticalGraphic = true, bool force = false, const makVrv::DtUnicode& elementDefinitionName = makVrv::DtUnicode::fromAscii(""),
227 
228  void initSematicsTextMapping();
229 
230  virtual DtVector visualPlacementFor(int set, const DtString&, makVrf::DtVrfObjectFacadeInterface*) const;
231  virtual double groundHeight(const DtVector&) const;
232 
233  virtual void createOrUpdatePositionMarker(const DtUiElementEvent&);
234  virtual void destroyPositionMarker(const DtUiElementEvent&);
235  virtual void setBoundingVolume(const DtUiElementEvent&);
236  virtual void runAfterCallFunction();
237 
238  virtual bool changeFromLineToVolumetricLine();
239  virtual bool changeFromVolumetricLineToLine();
240 
241  virtual void updateMarkerAttachments();
242 
243  virtual bool changeFrom2DAreaTo3DArea();
244  virtual bool changeFrom3DAreaTo2DArea();
245 
248  virtual void mergeVisualizerAttributes(int modelSet, const makVrv::DtVisualizerDefinitionSet& source, makVrv::DtElementDefinitionNew* target) const;
249 
251  virtual void createEntryIfNoEntry(const DtEntityType&, bool force = false);
252  virtual void createEntityIfNoEntry(const DtEntityType&, bool force = false);
253  virtual void createTacticalGraphicIfNoEntry(const DtEntityType&, bool force = false);
254  virtual void createAggregateIfNoEntry(const DtEntityType&, bool force = false);
255 
256  virtual void setupLabel();
257  virtual void createEditors(bool allIs2D);
258  virtual bool hasScribeOnExtent() const;
259  virtual void setShowScribeOnExtent(bool);
260 
261  virtual void resetMarkers();
262 
263  virtual void visualsHaveBeenModified();
264  virtual void hasVertices(QCheckBox*);
265  virtual void hasSymbolDecorations(QCheckBox*);
266  virtual void isEllipse(QCheckBox*);
267  virtual void isScribed(QCheckBox*);
268  virtual void isOutlineScribed(QCheckBox*);
269  virtual void setupArrowStyle(QComboBox*);
270  virtual void setupDefaultWidth(QSpinBox*);
271  virtual void setupDefaultPhysicalWidth(QSpinBox*);
272  virtual void setupDefaultPhysicalHeight(QSpinBox*);
273  virtual void setupDefaultScribedWidth(QSpinBox*);
274  virtual void setupArrowSize(QSpinBox*);
275  virtual void setupArrowFrequency(QComboBox*);
276  virtual void setupLineStyle(QComboBox*);
277  virtual void setupFillStyle(QComboBox*);
278  virtual void setupStipple(QComboBox*);
279  virtual void setupDefaultColor(QPushButton*);
280  virtual void setupScribeColor(QPushButton*);
281  virtual void setup(const std::string& attribute, QComboBox*);
282  virtual void setup(const std::string& attribute, QSpinBox*);
283  virtual DtString createVisualizerNameFor(makVrv::DtElementDefinitionManager*, DtModelSetEntry* entry);
284  virtual void opdEntryAdded(DtModelSetEntry* model, const DtEntityType&);
285  virtual void newDataFilesAdded(const std::vector<DtSimulationModelSetLoader::EntityData*>&);
286  virtual void visualMappingsModified(DtSimulationModelSetLoader::EntityData*);
287  virtual std::string modeForModelSet(int s);
288  virtual void setupColor(QPushButton*, QColor&, const std::string&);
289  virtual void changeColor(QPushButton*, QColor&, const std::string&);
290  virtual void setupForSimulationObjectGroup();
291  virtual void zoomToExtents();
292  virtual void cleanupEditors();
293  virtual std::string schemaFromFacade(makVrf::DtEnvironmentalFacadeCollection*) const;
294  virtual void initSemanticsTextMapping();
295  virtual void setupModelStates();
296 
297  virtual void resetVisuals();
298 
299  virtual bool isTacticalSmoke(const makVrf::DtEntityMapperKey&) const;
300  virtual void enableDynamicOceanAndPosition();
301 
302  virtual void uiElementModified(DtUiElement*);
303  virtual void setIsEllipse(bool);
304  virtual void setScribed(bool);
305  virtual void setOutlineScribed(bool);
306  virtual void setShowVertices(bool);
307  virtual void setShowSymbolDecorations(bool);
308  virtual void setVisualizerEnabledChanged(int, bool);
309 
310 public slots:
311  virtual void forcesModified();
312  virtual void setMarkerLabelsVisible(bool);
313  virtual void setMarker2DMode(bool);
314  virtual void setBoundingVolumesVisible(bool);
315 
316  virtual bool setupForTacticalGraphic(const DtEntityType&, const std::vector<int>& modelSets);
317  virtual bool setupForEntity(const DtEntityType&, const std::vector<int>& modelSets);
318  virtual void visualizerModifiedWithReedit(bool reedit);
319  virtual void modelDefinitionModified();
320 
321 protected slots:
322  virtual void finalizeModelChange();
323  virtual void updateVisualizerModifiedData();
324  virtual void buoyancyDialogDestroyed();
325  virtual void elementDefinitionWidgetDestroyed();
326  virtual void buoyancyDestroyed();
327  virtual void editBuoyancy();
328  virtual void spotReportEditingChanged();
329  virtual void onDaylightChanged();
330  virtual void useMildStdFontChanged();
331  virtual void setDiGuyData(const DtDiGuyInformation& diGuyData);
332  virtual void onChangeDefaultView();
333  virtual void changeViewMode(int);
334  virtual void visualBaseChanged(int);
335  virtual void visualizerModified();
336  virtual void markerVisibilityChanged();
337  virtual void marker2DModeChanged();
338  virtual void boundingVolumesVisibilityChanged();
339  virtual void showVertices();
340  virtual void showSymbolDecorations();
341  virtual void setIsEllipse();
342  virtual void visualizerEnabledChanged();
343  virtual void changeArrowStyle(int);
344  virtual void setScribed();
345  virtual void setOutlineScribed();
346  virtual void changeScribedWidth(int);
347  virtual void changeDefaultWidth(int);
348  virtual void changeDefaultPhysicalWidth(int);
349  virtual void changeDefaultPhysicalHeight(int);
350  virtual void changeArrowSize(int);
351  virtual void changeArrowFrequency(int);
352  virtual void changeLineStyle(int);
353  virtual void changeFillStyle(int);
354  virtual void change(const std::string& style, int);
355  virtual void changeStipple(int);
356  virtual void changeDefaultColor();
357  virtual void changeScribeColor();
358  virtual void modelStateChanged(QTreeWidgetItem*, int);
359  virtual void calculateSupportPoints();
360  virtual void calculateBoundingVolume();
361  virtual void buoyancyModelModified();
362 
363 signals:
364  void visualsModified();
365  void uiElementEvent(const DtUiElementEvent&);
366  void redisplayListIcons();
367 
368 public:
375  QHBoxLayout* myMainLayout;
376  QGroupBox* myGroupBox;
379  QWidget* myTopLineWidget;
380  QWidget* myModelStates;
385 
388  QHBoxLayout* myDaylightLayout;
394  QFrame* mySeparator;
395  QGridLayout* myTitleLayout;
396 
397  std::vector<QWidget*> myEditorCanvases;
398  std::vector<QCheckBox*> myTitles;
399 
400  std::vector<QWidget*> myMilStdEditorCanvases;
401  std::vector<QCheckBox*> myMilStdTitles;
403 
404  Ui_DtTacticalGraphicStylesUi myStylesImpl;
409 
413 
414 protected:
419 
422 
423  typedef std::vector<makVrf::DtVrfObjectFacadeInterface*> Facades;
424 
426 
430 
431  typedef std::pair<makVrv::DtElementDefinitionManager*, makVrv::DtElementDefinitionNew*> ElementDefinitionPair;
432  typedef std::map<std::string, ElementDefinitionPair> ElementDefinitionMap;
433  typedef std::map<bool, ElementDefinitionMap> ElementDefinitionMapByType;
434 
437 
438  std::map<int, DtVisualEditor*> myEditors;
439  std::map<int, DtVisualEditor*> myEnvironmentalMilStdIcons;
440  std::vector<int> myIsFirstShow;
441  bool myAllIs2D;
442 
448 
449  typedef std::pair<DtVector, DtTaitBryan> CameraInfo;
450  typedef std::map<int, CameraInfo> CameraMap;
452 
453  typedef std::map<int, DtMarkerVisualizer*> Markers;
455 
459 
465  std::string myLabel;
471 
472  std::vector<makVrv::DtWidgetLabelAgent*> myInSpotReportMode;
473 
474  std::map<int, QString> mySemanticsTextMapping;
477 
478  std::set<std::string> myAlreadyAskedForShared;
483 
485 };
486 
488 {
489 public:
492 
494  virtual ~DtUiDisplayWidgetCanvas();
495 
497 
499  virtual void processUiEvent(const DtUiElementEvent&);
500 
501  virtual DtString uniqueName() const
502  {
503  return "DtUiDisplayWidgetCanvas";
504  }
505 
506  virtual void setEnabled(bool b);
507 
508 protected:
509  virtual void createControls(QWidget*);
510  virtual void setFromParameters(const std::vector<DtReaderWriter*>& parentRw);
511 };
512 
514 {
515 public:
517  DtDisplayDefinitionWidgetHolder(makVrv::DtDe& de, QWidget* parent);
518 
521 
522  static DtDisplayDefinitionWidget* instance(makVrv::DtDe& de, QWidget* parent);
523 
524  DtDisplayDefinitionWidget* displayDefinitionWidget() { return myWidget; };
525 
526 protected:
527  DtDisplayDefinitionWidget* myWidget;
528 };
529 

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)