VR-Forces 4.3.1 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 
13 #include <vlpi/entityType.h>
14 #include <entityEditorImpl/ui_DtTacticalGraphicStylesUi.h>
17 
18 #include <vrvCore/DtWindow.h>
22 
23 #include <QImage>
24 #include <QWidget>
25 
26 class DtModelSetEntry;
27 class DtUiElementEvent;
28 class QComboBox;
29 class QHBoxLayout;
30 class QGroupBox;
31 class QLabel;
32 class QPushButton;
34 class DtSymbolEditor;
35 class DtMarkerVisualizer;
36 class QCheckBox;
37 class QLineEdit;
38 class QFrame;
39 class QSpinBox;
40 class QGridLayout;
41 
42 namespace makVrf
43 {
44  class DtVrfObjectFacadeInterface;
45  class DtEnvironmentalFacadeCollection;
46 }
47 
48 namespace makVrv
49 {
50  class DtDe;
51  class DtPluginManager;
52  class DtOsgAdapterQtWidget;
53  class DtElementDefinitionManager;
54  class DtElementDefinitionNew;
55  class DtChannelManager;
56  class DtChannel;
57  class DtObserver;
58  class DtOsgObserverObject;
59 }
60 
63 {
64  Q_OBJECT
65 
66 public:
67 
69  DtDisplayWidget(makVrv::DtDe& appDe, makVrv::DtDe* de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
70 
72  virtual ~DtDisplayWidget();
73 
74  makVrv::DtOsgAdapterQtWidget* adapterWidget();
75 
76  void init();
77 
78  virtual void buildAdapterWidget();
79 
80  virtual void buildTicker();
81 
82  const std::vector<int>& modelSets() const
83  {
84  return myModelSets;
85  }
86 
87  int observerMode(int i) const
88  {
89  std::map<int, int>::const_iterator iter = myModeKeyMap.find(i);
90 
91  if (iter != myModeKeyMap.end())
92  {
93  return iter->second;
94  }
95 
96  return 0;
97  }
98 
99  const std::map<int, int>& modeMap() const
100  {
101  return myModeKeyMap;
102  }
103 
104  boost::signal<void ()> signal_channelsInitialized;
105 
106  virtual void initializeObservers();
107 
108  QImage contents();
109 
110 protected:
111 
112  virtual void createIg();
113 
114  virtual void preIgInitialize();
115 
116  virtual void overrideIgFunctionality();
117 
118  virtual void igInitialize();
119 
120  virtual void postIgInitialize();
121  virtual void resizeEvent( QResizeEvent* event);
122 
123 protected:
127  std::vector<int> myModelSets;
128  std::map<int, int> myModeKeyMap;
129 };
130 
132 {
133 
134 public:
135 
137 
140 
141 protected:
142 
144 
145 };
146 
148 {
149  Q_OBJECT
150 
151 public:
153 
154  virtual ~DtDisplayDefinitionWidget();
155 
156  virtual void init();
157 
158  virtual void edit(const makVrf::DtEntityMapperKey&, bool move = true, bool fromSelection = false);
159  virtual void clearContents();
160 
162  {
163  return myDe;
164  }
165 
166  virtual bool hasOneDiGuy() const;
167 
168  virtual void revertExisting(const std::set<makVrf::DtEntityMapperKey>& key);
169 
170  virtual void updateStatus();
171 
172  virtual void preSimulationModelSetSave();
173 
174  virtual void simulationModelSetLoaded();
175 
176  virtual void cloneEntry(const DtEntityType& oldType, const DtEntityType& newType, DtModelSetEntry*);
177  virtual void uiEvent(const DtUiElementEvent&);
178 
179  virtual void setCompressedView(bool);
180  virtual void setStackedView(bool);
181  virtual QString visualBase() const;
182 
183  virtual void disable();
184  virtual void enable();
185  DtDisplayWidget* displayWidget() { return myDisplayWidget; };
186 
187 protected:
188  virtual void postInitialize();
189  virtual void reedit();
190 
193  virtual void setupVisualBases(const makVrv::DtElementDefinitionNew*);
194 
195  virtual bool setupEditor(int set, bool* hasCenteredIcon = 0);
196 
197  virtual void createNewEntry(const DtEntityType& newType, DtModelSetEntry* model, const DtEntityType& basedOnType = DtEntityType(),
198  bool resetTacticalGraphic = true);
199 
200  virtual DtVector visualPlacementFor(int set, const DtString&) const;
201  virtual double groundHeight(const DtVector&) const;
202 
203  virtual void createOrUpdatePositionMarker(const DtUiElementEvent&);
204  virtual void destroyPositionMarker(const DtUiElementEvent&);
205  virtual void setBoundingVolume(const DtUiElementEvent&);
206 
209  virtual void mergeVisualizerAttributes(int modelSet, const makVrv::DtVisualizerDefinitionSet& source, makVrv::DtElementDefinitionNew* target) const;
210 
212  virtual void createEntryIfNoEntry(const DtEntityType&);
213  virtual void createEntityIfNoEntry(const DtEntityType&);
214  virtual void createTacticalGraphicIfNoEntry(const DtEntityType&);
215  virtual void createAggregateIfNoEntry(const DtEntityType&);
216 
217  virtual void setupLabel();
218  virtual void createEditors(bool allIs2D);
219  virtual void updateSpecifics();
220  virtual bool hasScribeOnExtent() const;
221  virtual void setShowScribeOnExtent(bool);
222 
223  virtual void hasVertices(QCheckBox*);
224  virtual void hasSymbolDecorations(QCheckBox*);
225  virtual void isEllipse(QCheckBox*);
226  virtual void setupArrowStyle(QComboBox*);
227  virtual void setupDefaultWidth(QSpinBox*);
228  virtual void setupArrowSize(QSpinBox*);
229  virtual void setupArrowFrequency(QComboBox*);
230  virtual void setupLineStyle(QComboBox*);
231  virtual void setupFillStyle(QComboBox*);
232  virtual void setupStipple(QComboBox*);
233  virtual void setupDefaultColor(QPushButton*);
234  virtual void setup(const std::string& attribute, QComboBox*);
235  virtual void setup(const std::string& attribute, QSpinBox*);
236  virtual DtString createVisualizerNameFor(makVrv::DtElementDefinitionManager*, DtModelSetEntry* entry);
237  virtual void opdEntryAdded(DtModelSetEntry* model, const DtEntityType&);
238  virtual std::string modeForModelSet(int s);
239  virtual std::string schemaFromFacade(makVrf::DtEnvironmentalFacadeCollection*) const;
240 
241 public slots:
242  virtual void forcesModified();
243  virtual void setMarkerLabelsVisible(bool);
244  virtual void setBoundingVolumesVisible(bool);
245 
246  virtual bool setupForTacticalGraphic(const DtEntityType&, const std::vector<int>& modelSets);
247  virtual bool setupForEntity(const DtEntityType&, const std::vector<int>& modelSets);
248 
249 protected slots:
250  virtual void useMildStdFontChanged();
251  virtual void setDiGuyData(const DtDiGuyInformation& diGuyData);
252  virtual void onChangeDefaultView();
253  virtual void changeViewMode(int);
254  virtual void visualBaseChanged(int);
255  virtual void visualizerModified();
256  virtual void modelDefinitionModified();
257  virtual void markerVisibilityChanged();
258  virtual void boundingVolumesVisibilityChanged();
259  virtual void showVertices();
260  virtual void showSymbolDecorations();
261  virtual void setIsEllipse();
262  virtual void visualizerEnabledChanged();
263  virtual void changeArrowStyle(int);
264  virtual void changeDefaultWidth(int);
265  virtual void changeArrowSize(int);
266  virtual void changeArrowFrequency(int);
267  virtual void changeLineStyle(int);
268  virtual void changeFillStyle(int);
269  virtual void change(const std::string& style, int);
270  virtual void changeStipple(int);
271  virtual void changeDefaultColor();
272 
273 signals:
274  void visualsModified();
275  void uiElementEvent(const DtUiElementEvent&);
276  void redisplayListIcons();
277 
278 public:
285  QHBoxLayout* myMainLayout;
286  QGroupBox* myGroupBox;
290 
293 
294 protected:
299 
300  QGridLayout* myTitleLayout;
303 
304  typedef std::vector<makVrf::DtVrfObjectFacadeInterface*> Facades;
305 
307 
311 
312  typedef std::pair<makVrv::DtElementDefinitionManager*, makVrv::DtElementDefinitionNew*> ElementDefinitionPair;
313  typedef std::map<std::string, ElementDefinitionPair> ElementDefinitionMap;
314 
316 
317  std::map<int, DtVisualEditor*> myEditors;
318  std::map<int, DtVisualEditor*> myEnvironmentalMilStdIcons;
319  std::vector<int> myIsFirstShow;
320  bool myAllIs2D;
321 
322  std::vector<QWidget*> myEditorCanvases;
323  std::vector<QCheckBox*> myTitles;
324 
325  std::vector<QWidget*> myMilStdEditorCanvases;
326  std::vector<QCheckBox*> myMilStdTitles;
327 
332 
333  typedef std::pair<DtVector, DtTaitBryan> CameraInfo;
334  typedef std::map<int, CameraInfo> CameraMap;
336 
337  typedef std::map<int, DtMarkerVisualizer*> Markers;
339 
342  QFrame* mySeparator;
347 
348  Ui_DtTacticalGraphicStylesUi myStylesImpl;
355  std::string myLabel;
360 
361  std::map<std::string, int> myObserverSelection;
362 };
363 
365 {
366 public:
369 
371  virtual ~DtUiDisplayWidgetCanvas();
372 
374 
376  virtual void processUiEvent(const DtUiElementEvent&);
377 
378  virtual DtString uniqueName() const
379  {
380  return "DtUiDisplayWidgetCanvas";
381  }
382 
383 protected:
384  virtual void createControls(QWidget*);
385  virtual void setFromParameters(const std::vector<DtReaderWriter*>& parentRw);
386 };
387 
389 {
390 public:
393 
396 
397  static DtDisplayDefinitionWidget* instance(makVrv::DtDe& de, QWidget* parent);
398 
399  DtDisplayDefinitionWidget* displayDefinitionWidget() { return myWidget; };
400 
401 protected:
402  DtDisplayDefinitionWidget* myWidget;
403 };
404 

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)