VR-Forces 4.5 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 
14 #include <vlpi/entityType.h>
15 #include "ui_DtTacticalGraphicStylesUi.h"
18 
19 #include <vrvCore/DtWindow.h>
23 
24 #include <QImage>
25 #include <QWidget>
26 
27 class DtModelSetEntry;
28 class DtUiElementEvent;
29 class QComboBox;
30 class QHBoxLayout;
31 class QGroupBox;
32 class QLabel;
33 class QPushButton;
35 class DtSymbolEditor;
36 class DtMarkerVisualizer;
37 class QCheckBox;
38 class QLineEdit;
39 class QFrame;
40 class QSpinBox;
41 class QGridLayout;
42 class QStandardItem;
43 class QTreeWidget;
44 
45 namespace makVrf
46 {
47  class DtVrfObjectFacadeInterface;
48  class DtEnvironmentalFacadeCollection;
49 }
50 
51 namespace makVrv
52 {
53  class DtDe;
54  class DtPluginManager;
55  class DtOsgAdapterQtWidget;
56  class DtElementDefinitionManager;
57  class DtElementDefinitionNew;
58  class DtChannelManager;
59  class DtChannel;
60  class DtObserver;
61  class DtOsgObserverObject;
62  class DtWindowTextAgent;
63  class DtWidgetLabelAgent;
64 }
65 
67 
70 {
71  Q_OBJECT
72 
73 public:
74 
76  DtDisplayWidget(makVrv::DtDe& appDe, makVrv::DtDe* de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
77 
79  virtual ~DtDisplayWidget();
80 
81  makVrv::DtOsgAdapterQtWidget* adapterWidget();
82 
83  void init();
84 
85  virtual void buildAdapterWidget();
86 
87  virtual void buildTicker();
88 
89  const std::vector<int>& modelSets() const
90  {
91  return myModelSets;
92  }
93 
94  int observerMode(int i) const
95  {
96  std::map<int, int>::const_iterator iter = myModeKeyMap.find(i);
97 
98  if (iter != myModeKeyMap.end())
99  {
100  return iter->second;
101  }
102 
103  return 0;
104  }
105 
106  const std::map<int, int>& modeMap() const
107  {
108  return myModeKeyMap;
109  }
110 
111  boost::signal<void ()> signal_channelsInitialized;
112 
113  virtual void initializeObservers();
114 
115  QImage contents();
116 
117 protected:
118 
119  virtual void createIg();
120 
121  virtual void preIgInitialize();
122 
123  virtual void overrideIgFunctionality();
124 
125  virtual void igInitialize();
126 
127  virtual void postIgInitialize();
128  virtual void resizeEvent( QResizeEvent* event);
129 
130 protected:
134  std::vector<int> myModelSets;
135  std::map<int, int> myModeKeyMap;
136 };
137 
139 {
140 
141 public:
142 
144 
147 
148 protected:
149 
151 
152 };
153 
155 {
156  Q_OBJECT
157 
158 public:
159  typedef boost::function<void ()> AskToChangeIfShared;
160 
162 
163  virtual ~DtDisplayDefinitionWidget();
164 
165  virtual void init();
166 
167  virtual void edit(const makVrf::DtEntityMapperKey&, bool move = true, bool fromSelection = false);
168  virtual void clearContents();
169 
171  {
172  return myDe;
173  }
174 
175  virtual bool hasOneDiGuy() const;
176 
177  virtual void revertExisting(const std::set<makVrf::DtEntityMapperKey>& key);
178 
179  virtual void updateStatus();
180 
181  virtual void preSimulationModelSetSave();
182 
183  virtual void simulationModelSetLoaded();
184 
185  virtual void cloneEntry(const DtEntityType& oldType, const DtEntityType& newType, DtModelSetEntry*);
186  virtual void uiEvent(const DtUiElementEvent&);
187 
188  virtual void setCompressedView(bool);
189  virtual void setStackedView(bool);
190  virtual QString visualBase() const;
191 
192  virtual void disable();
193  virtual void enable();
194  DtDisplayWidget* displayWidget() { return myDisplayWidget; };
195  virtual void updateSpecifics();
196 
197  virtual void setOnlyVisualControlsEnabled(bool);
198  virtual bool askToChangeIfShared(AskToChangeIfShared);
199 
200  virtual void reeditForModelSet(int);
201 
202 protected:
203 
204  virtual void makeSureAllMilStdVisualizersAreTheSameAs(int modelSet);
205 
206  virtual void postInitialize();
207  virtual void reedit();
208 
211  virtual void setupVisualBases(const makVrv::DtElementDefinitionNew*);
212 
213  virtual bool setupEditor(int set, bool* hasCenteredIcon = 0);
214 
215  virtual void createNewEntry(const DtEntityType& newType, DtModelSetEntry* model, const DtEntityType& basedOnType = DtEntityType(),
216  bool resetTacticalGraphic = true, bool force = false, const makVrv::DtUnicode& elementDefinitionName = makVrv::DtUnicode::fromAscii(""));
217 
218  void initSematicsTextMapping();
219 
220  virtual DtVector visualPlacementFor(int set, const DtString&, makVrf::DtVrfObjectFacadeInterface*) const;
221  virtual double groundHeight(const DtVector&) const;
222 
223  virtual void createOrUpdatePositionMarker(const DtUiElementEvent&);
224  virtual void destroyPositionMarker(const DtUiElementEvent&);
225  virtual void setBoundingVolume(const DtUiElementEvent&);
226  virtual void runAfterCallFunction();
227 
228  virtual bool changeFromLineToVolumetricLine();
229  virtual bool changeFromVolumetricLineToLine();
230 
231  virtual void updateMarkerAttachments();
232 
233  virtual bool changeFrom2DAreaTo3DArea();
234  virtual bool changeFrom3DAreaTo2DArea();
235 
238  virtual void mergeVisualizerAttributes(int modelSet, const makVrv::DtVisualizerDefinitionSet& source, makVrv::DtElementDefinitionNew* target) const;
239 
241  virtual void createEntryIfNoEntry(const DtEntityType&, bool force = false);
242  virtual void createEntityIfNoEntry(const DtEntityType&, bool force = false);
243  virtual void createTacticalGraphicIfNoEntry(const DtEntityType&, bool force = false);
244  virtual void createAggregateIfNoEntry(const DtEntityType&, bool force = false);
245 
246  virtual void setupLabel();
247  virtual void createEditors(bool allIs2D);
248  virtual bool hasScribeOnExtent() const;
249  virtual void setShowScribeOnExtent(bool);
250 
251  virtual void visualsHaveBeenModified();
252  virtual void hasVertices(QCheckBox*);
253  virtual void hasSymbolDecorations(QCheckBox*);
254  virtual void isEllipse(QCheckBox*);
255  virtual void isScribed(QCheckBox*);
256  virtual void isOutlineScribed(QCheckBox*);
257  virtual void setupArrowStyle(QComboBox*);
258  virtual void setupDefaultWidth(QSpinBox*);
259  virtual void setupDefaultPhysicalWidth(QSpinBox*);
260  virtual void setupDefaultPhysicalHeight(QSpinBox*);
261  virtual void setupDefaultScribedWidth(QSpinBox*);
262  virtual void setupArrowSize(QSpinBox*);
263  virtual void setupArrowFrequency(QComboBox*);
264  virtual void setupLineStyle(QComboBox*);
265  virtual void setupFillStyle(QComboBox*);
266  virtual void setupStipple(QComboBox*);
267  virtual void setupDefaultColor(QPushButton*);
268  virtual void setupScribeColor(QPushButton*);
269  virtual void setup(const std::string& attribute, QComboBox*);
270  virtual void setup(const std::string& attribute, QSpinBox*);
271  virtual DtString createVisualizerNameFor(makVrv::DtElementDefinitionManager*, DtModelSetEntry* entry);
272  virtual void opdEntryAdded(DtModelSetEntry* model, const DtEntityType&);
273  virtual void newDataFilesAdded(const std::vector<DtSimulationModelSetLoader::EntityData*>&);
274  virtual void visualMappingsModified(DtSimulationModelSetLoader::EntityData*);
275  virtual std::string modeForModelSet(int s);
276  virtual void setupColor(QPushButton*, QColor&, const std::string&);
277  virtual void changeColor(QPushButton*, QColor&, const std::string&);
278  virtual void setupForSimulationObjectGroup();
279  virtual void zoomToExtents();
280  virtual void cleanupEditors();
281  virtual std::string schemaFromFacade(makVrf::DtEnvironmentalFacadeCollection*) const;
282  virtual void initSemanticsTextMapping();
283  virtual void setupModelStates();
284 
285  virtual void resetVisuals();
286 
287  virtual bool isTacticalSmoke(const makVrf::DtEntityMapperKey&) const;
288  virtual void enableDynamicOceanAndPosition();
289 
290  virtual void uiElementModified(DtUiElement*);
291  virtual void setIsEllipse(bool);
292  virtual void setScribed(bool);
293  virtual void setOutlineScribed(bool);
294  virtual void setShowVertices(bool);
295  virtual void setShowSymbolDecorations(bool);
296  virtual void setVisualizerEnabledChanged(int, bool);
297 
298 public slots:
299  virtual void forcesModified();
300  virtual void setMarkerLabelsVisible(bool);
301  virtual void setMarker2DMode(bool);
302  virtual void setBoundingVolumesVisible(bool);
303 
304  virtual bool setupForTacticalGraphic(const DtEntityType&, const std::vector<int>& modelSets);
305  virtual bool setupForEntity(const DtEntityType&, const std::vector<int>& modelSets);
306  virtual void visualizerModifiedWithReedit(bool reedit);
307  virtual void modelDefinitionModified();
308 
309 protected slots:
310  virtual void updateVisualizerModifiedData();
311  virtual void buoyancyDialogDestroyed();
312  virtual void elementDefinitionWidgetDestroyed();
313  virtual void buoyancyDestroyed();
314  virtual void editBuoyancy();
315  virtual void spotReportEditingChanged();
316  virtual void onDaylightChanged();
317  virtual void useMildStdFontChanged();
318  virtual void setDiGuyData(const DtDiGuyInformation& diGuyData);
319  virtual void onChangeDefaultView();
320  virtual void changeViewMode(int);
321  virtual void visualBaseChanged(int);
322  virtual void visualizerModified();
323  virtual void markerVisibilityChanged();
324  virtual void marker2DModeChanged();
325  virtual void boundingVolumesVisibilityChanged();
326  virtual void showVertices();
327  virtual void showSymbolDecorations();
328  virtual void setIsEllipse();
329  virtual void visualizerEnabledChanged();
330  virtual void changeArrowStyle(int);
331  virtual void setScribed();
332  virtual void setOutlineScribed();
333  virtual void changeScribedWidth(int);
334  virtual void changeDefaultWidth(int);
335  virtual void changeDefaultPhysicalWidth(int);
336  virtual void changeDefaultPhysicalHeight(int);
337  virtual void changeArrowSize(int);
338  virtual void changeArrowFrequency(int);
339  virtual void changeLineStyle(int);
340  virtual void changeFillStyle(int);
341  virtual void change(const std::string& style, int);
342  virtual void changeStipple(int);
343  virtual void changeDefaultColor();
344  virtual void changeScribeColor();
345  virtual void modelStateChanged(QTreeWidgetItem*, int);
346  virtual void calculateSupportPoints();
347  virtual void calculateBoundingVolume();
348 
349 signals:
350  void visualsModified();
351  void uiElementEvent(const DtUiElementEvent&);
352  void redisplayListIcons();
353 
354 public:
361  QHBoxLayout* myMainLayout;
362  QGroupBox* myGroupBox;
371 
372 protected:
377 
378  QGridLayout* myTitleLayout;
381 
382  typedef std::vector<makVrf::DtVrfObjectFacadeInterface*> Facades;
383 
385 
389 
390  typedef std::pair<makVrv::DtElementDefinitionManager*, makVrv::DtElementDefinitionNew*> ElementDefinitionPair;
391  typedef std::map<std::string, ElementDefinitionPair> ElementDefinitionMap;
392  typedef std::map<bool, ElementDefinitionMap> ElementDefinitionMapByType;
393 
396 
397  std::map<int, DtVisualEditor*> myEditors;
398  std::map<int, DtVisualEditor*> myEnvironmentalMilStdIcons;
399  std::vector<int> myIsFirstShow;
400  bool myAllIs2D;
401 
402  std::vector<QWidget*> myEditorCanvases;
403  std::vector<QCheckBox*> myTitles;
404 
405  std::vector<QWidget*> myMilStdEditorCanvases;
406  std::vector<QCheckBox*> myMilStdTitles;
407 
413 
414  typedef std::pair<DtVector, DtTaitBryan> CameraInfo;
415  typedef std::map<int, CameraInfo> CameraMap;
417 
418  typedef std::map<int, DtMarkerVisualizer*> Markers;
420 
426  QFrame* mySeparator;
431 
432  Ui_DtTacticalGraphicStylesUi myStylesImpl;
440  std::string myLabel;
448 
452 
453  std::vector<makVrv::DtWidgetLabelAgent*> myInSpotReportMode;
454 
455  std::map<int, QString> mySemanticsTextMapping;
458 
459  std::set<std::string> myAlreadyAskedForShared;
464 };
465 
467 {
468 public:
471 
473  virtual ~DtUiDisplayWidgetCanvas();
474 
476 
478  virtual void processUiEvent(const DtUiElementEvent&);
479 
480  virtual DtString uniqueName() const
481  {
482  return "DtUiDisplayWidgetCanvas";
483  }
484 
485  virtual void setEnabled(bool b);
486 
487 protected:
488  virtual void createControls(QWidget*);
489  virtual void setFromParameters(const std::vector<DtReaderWriter*>& parentRw);
490 };
491 
493 {
494 public:
497 
500 
501  static DtDisplayDefinitionWidget* instance(makVrv::DtDe& de, QWidget* parent);
502 
503  DtDisplayDefinitionWidget* displayDefinitionWidget() { return myWidget; };
504 
505 protected:
506  DtDisplayDefinitionWidget* myWidget;
507 };
508 

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)