VR-Forces 4.2 Class Documentation
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>
16 #include <makArchives/DtObserverStateRecordsList.h>
17 
18 #include <vrvCore/DtWindow.h>
19 #include <vrvCore/DtSelectionManager.h>
20 #include <vrvCore/DtTacticalGraphicUtilities.h>
21 
22 #include <QImage>
23 #include <QWidget>
24 
25 class DtModelSetEntry;
26 class DtUiElementEvent;
27 class QComboBox;
28 class QHBoxLayout;
29 class QGroupBox;
30 class QLabel;
31 class QPushButton;
33 class DtSymbolEditor;
34 class DtMarkerVisualizer;
35 class QCheckBox;
36 class QLineEdit;
37 class QFrame;
38 class QSpinBox;
39 class QGridLayout;
40 
41 namespace makVrf
42 {
43  class DtVrfObjectFacadeInterface;
44 }
45 
46 namespace makVrv
47 {
48  class DtDe;
49  class DtPluginManager;
50  class DtOsgAdapterQtWidget;
51  class DtElementDefinitionManager;
52  class DtElementDefinitionNew;
53  class DtChannelManager;
54  class DtChannel;
55  class DtObserver;
56  class DtOsgObserverObject;
57 }
58 
61 {
62  Q_OBJECT
63 
64 public:
65 
67  DtDisplayWidget(makVrv::DtDe& appDe, makVrv::DtDe* de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
68 
70  virtual ~DtDisplayWidget();
71 
72  makVrv::DtOsgAdapterQtWidget* adapterWidget();
73 
74  virtual void init();
75 
76  virtual void buildAdapterWidget();
77 
78  virtual void buildTicker();
79 
80  const std::vector<int>& modelSets() const
81  {
82  return myModelSets;
83  }
84 
85  int observerMode(int i) const
86  {
87  std::map<int, int>::const_iterator iter = myModeKeyMap.find(i);
88 
89  if (iter != myModeKeyMap.end())
90  {
91  return iter->second;
92  }
93 
94  return 0;
95  }
96 
97  const std::map<int, int>& modeMap() const
98  {
99  return myModeKeyMap;
100  }
101 
102  boost::signal<void ()> signal_channelsInitialized;
103 
104  virtual void initializeObservers();
105 
106  QImage contents();
107 
108 protected:
109 
110  virtual void createIg();
111 
112  virtual void preIgInitialize();
113 
114  virtual void overrideIgFunctionality();
115 
116  virtual void igInitialize();
117 
118  virtual void postIgInitialize();
119  virtual void resizeEvent( QResizeEvent* event);
120 
121 protected:
122  makVrv::DtDe* myDe;
123  makVrv::DtDe& myAppDe;
124  makVrv::DtOsgAdapterQtWidget* myAdapterWidget;
125  std::vector<int> myModelSets;
126  std::map<int, int> myModeKeyMap;
127 };
128 
129 class DT_DLL_entityeditorimpl DtDisplayWidgetCreator : public makVrv::DtWindowCreator
130 {
131 
132 public:
133 
135 
137  virtual makVrv::DtWindow* create(makVrv::DtDe& de, makVrv::DtWindowConfiguration& wc);
138 
139 protected:
140 
142 
143 };
144 
146 {
147  Q_OBJECT
148 
149 public:
150  DtDisplayDefinitionWidget(makVrv::DtDe& appDe, QWidget* p);
151 
152  virtual ~DtDisplayDefinitionWidget();
153 
154  virtual void init();
155 
156  virtual void edit(const makVrf::DtEntityMapperKey&, bool move = true, bool fromSelection = false);
157  virtual void clearContents();
158 
159  makVrv::DtDe* de()
160  {
161  return myDe;
162  }
163 
164  virtual bool hasOneDiGuy() const;
165 
166  virtual void revertExisting(const std::set<makVrf::DtEntityMapperKey>& key);
167 
168  virtual void updateStatus();
169 
170  virtual void preSimulationModelSetSave();
171 
172  virtual void simulationModelSetLoaded();
173 
174  virtual void cloneEntry(const DtEntityType& oldType, const DtEntityType& newType, DtModelSetEntry*);
175  virtual void uiEvent(const DtUiElementEvent&);
176 
177  virtual void disable();
178  virtual void enable();
179  DtDisplayWidget* displayWidget() { return myDisplayWidget; };
180 
181 protected:
182  virtual void postInitialize();
183  virtual void reedit();
184 
187  virtual void setupVisualBases(const makVrv::DtElementDefinitionNew*);
188 
189  virtual bool setupEditor(int set);
190 
191  virtual void createNewEntry(const DtEntityType& newType, DtModelSetEntry* model, const DtEntityType& basedOnType = DtEntityType(),
192  bool resetTacticalGraphic = true);
193 
194  virtual DtVector visualPlacementFor(int set, const DtString&) const;
195  virtual double groundHeight(const DtVector&) const;
196 
197  virtual void createOrUpdatePositionMarker(const DtUiElementEvent&);
198  virtual void destroyPositionMarker(const DtUiElementEvent&);
199  virtual void setBoundingVolume(const DtUiElementEvent&);
200 
203  virtual void mergeVisualizerAttributes(int modelSet, const makVrv::DtVisualizerDefinitionSet& source, makVrv::DtElementDefinitionNew* target) const;
204 
206  virtual void createEntryIfNoEntry(const DtEntityType&);
207  virtual void createEntityIfNoEntry(const DtEntityType&);
208  virtual void createTacticalGraphicIfNoEntry(const DtEntityType&);
209  virtual void createAggregateIfNoEntry(const DtEntityType&);
210 
211  virtual void setupLabel();
212  virtual void createEditors(bool allIs2D);
213  virtual void updateSpecifics();
214  virtual bool hasScribeOnExtent() const;
215  virtual void setShowScribeOnExtent(bool);
216 
217  virtual void hasVertices(QCheckBox*);
218  virtual void hasSymbolDecorations(QCheckBox*);
219  virtual void isEllipse(QCheckBox*);
220  virtual void setupArrowStyle(QComboBox*);
221  virtual void setupDefaultWidth(QSpinBox*);
222  virtual void setupArrowSize(QSpinBox*);
223  virtual void setupArrowFrequency(QComboBox*);
224  virtual void setupLineStyle(QComboBox*);
225  virtual void setupFillStyle(QComboBox*);
226  virtual void setupStipple(QComboBox*);
227  virtual void setupDefaultColor(QPushButton*);
228  virtual void setup(const std::string& attribute, QComboBox*);
229  virtual void setup(const std::string& attribute, QSpinBox*);
230  virtual DtString createVisualizerNameFor(makVrv::DtElementDefinitionManager*, DtModelSetEntry* entry);
231  virtual void opdEntryAdded(DtModelSetEntry* model, const DtEntityType&);
232  virtual std::string modeForModelSet(int s);
233 
234 public slots:
235  virtual void forcesModified();
236  virtual void setMarkerLabelsVisible(bool);
237  virtual void setBoundingVolumesVisible(bool);
238 
239  virtual bool setupForTacticalGraphic(const DtEntityType&, const std::vector<int>& modelSets);
240  virtual bool setupForEntity(const DtEntityType&, const std::vector<int>& modelSets);
241 
242 protected slots:
243  virtual void setDiGuyData(const DtDIGuyInformation& diGuyData);
244  virtual void onChangeDefaultView();
245  virtual void changeViewMode(int);
246  virtual void visualBaseChanged(int);
247  virtual void visualizerModified();
248  virtual void modelDefinitionModified();
249  virtual void markerVisibilityChanged();
250  virtual void boundingVolumesVisibilityChanged();
251  virtual void showVertices();
252  virtual void showSymbolDecorations();
253  virtual void setIsEllipse();
254  virtual void visualizerEnabledChanged();
255  virtual void changeArrowStyle(int);
256  virtual void changeDefaultWidth(int);
257  virtual void changeArrowSize(int);
258  virtual void changeArrowFrequency(int);
259  virtual void changeLineStyle(int);
260  virtual void changeFillStyle(int);
261  virtual void change(const std::string& style, int);
262  virtual void changeStipple(int);
263  virtual void changeDefaultColor();
264 
265 signals:
266  void visualsModified();
267  void uiElementEvent(const DtUiElementEvent&);
268  void redisplayListIcons();
269 
270 public:
273  QLabel* myFreezeFrame;
277  QHBoxLayout* myMainLayout;
278  QGroupBox* myGroupBox;
282 
285 
286 protected:
287  makVrv::DtDe& myAppDe;
288  makVrv::DtDe* myDe;
291 
292  QGridLayout* myTitleLayout;
295 
296  typedef std::vector<makVrf::DtVrfObjectFacadeInterface*> Facades;
297 
299 
301  makVrv::DtElementDefinitionNew* myElementDefinition;
302  makVrv::DtElementDefinitionManager* myManager;
303 
304  typedef std::pair<makVrv::DtElementDefinitionManager*, makVrv::DtElementDefinitionNew*> ElementDefinitionPair;
305  typedef std::map<std::string, ElementDefinitionPair> ElementDefinitionMap;
306 
308 
309  std::map<int, DtVisualEditor*> myEditors;
310  std::vector<int> myIsFirstShow;
311  bool myAllIs2D;
312 
313  std::vector<QWidget*> myEditorCanvases;
314  std::vector<QCheckBox*> myTitles;
315 
320 
321  typedef std::pair<DtVector, DtTaitBryan> CameraInfo;
322  typedef std::map<int, CameraInfo> CameraMap;
324 
325  typedef std::map<int, DtMarkerVisualizer*> Markers;
327 
331 
332 
333  Ui_DtTacticalGraphicStylesUi myStylesImpl;
340  std::string myLabel;
341  makVrv::vrvTacticalGraphicUtilities::PenStyle myPenStyle;
342  makVrv::vrvTacticalGraphicUtilities::FillStyle myFillStyle;
343  makArchives::DtObserverStateRecordsList myObserverViews;
344 };
345 
347 class DT_DLL_entityeditorimpl DtDisplayDefinitionWidgetCreator : public makVrv::DtVirtualBaseClass
348 {
349 public:
351  DtDisplayDefinitionWidgetCreator(makVrv::DtDe&);
352 
355 
357  static DtDisplayDefinitionWidgetCreator& instance(makVrv::DtDe&);
358 
360  static void registerInstance(makVrv::DtDe&, DtDisplayDefinitionWidgetCreator*);
361 
363  virtual DtDisplayDefinitionWidget* create(QWidget* parent);
364 
365 protected:
366  makVrv::DtDe& myDe;
367 };

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)