VR-Forces 4.1 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 <ngutil/entityMapperKey.h>
14 #include <vlpi/entityType.h>
15 #include <entityEditorImpl/ui_DtTacticalGraphicStylesUi.h>
16 
17 #include <vrvCore/DtWindow.h>
20 
21 #include <QWidget>
22 
24 class DtModelSetEntry;
25 class DtUiElementEvent;
26 class QComboBox;
27 class QHBoxLayout;
28 class QGroupBox;
29 class QLabel;
30 class QPushButton;
32 class DtSymbolEditor;
33 class DtMarkerVisualizer;
34 class QCheckBox;
35 class QLineEdit;
36 class QFrame;
37 class QSpinBox;
38 
39 namespace makVrf
40 {
41  class DtVrfObjectFacadeInterface;
42 }
43 
44 namespace makVrv
45 {
46  class DtDe;
47  class DtPluginManager;
48  class DtOsgAdapterQtWidget;
49  class DtElementDefinitionManager;
50  class DtElementDefinitionNew;
51  class DtChannelManager;
52  class DtChannel;
53  class DtObserver;
54 }
55 
58 {
59  Q_OBJECT
60 
61 public:
62 
64  DtDisplayWidget(makVrv::DtDe* de, QWidget * parent = 0, Qt::WindowFlags f = 0 );
65 
67  virtual ~DtDisplayWidget();
68 
69  makVrv::DtOsgAdapterQtWidget* adapterWidget();
70 
71  virtual void init();
72 
73  virtual void buildAdapterWidget();
74 
75  virtual void buildTicker();
76 
77  const std::vector<makVrv::DtObserver*> observers() const
78  {
79  return myObservers;
80  }
81 
82  std::vector<makVrv::DtObserver*> observers()
83  {
84  return myObservers;
85  }
86 
87  const std::vector<int>& modelSets() const
88  {
89  return myModelSets;
90  }
91 
92  int observerMode(int i) const
93  {
94  std::map<int, int>::const_iterator iter = myModeKeyMap.find(i);
95 
96  if (iter != myModeKeyMap.end())
97  {
98  return iter->second;
99  }
100 
101  return 0;
102  }
103 
104  const std::map<int, int>& modeMap() const
105  {
106  return myModeKeyMap;
107  }
108 
109  boost::signal<void ()> signal_channelsInitialized;
110 
111 protected:
112 
113  virtual void createIg();
114 
115  virtual void preIgInitialize();
116 
117  virtual void overrideIgFunctionality();
118 
119  virtual void igInitialize();
120 
121  virtual void postIgInitialize();
122  virtual void initializeChannels();
123 
124  virtual void createChannels();
125  virtual void resizeEvent( QResizeEvent* event);
126 
127 protected:
130  std::vector<int> myModelSets;
131  std::map<int, int> myModeKeyMap;
132  std::vector<makVrv::DtObserver*> myObservers;
133 };
134 
136 {
137 
138 public:
139 
141 
144 
145 protected:
146 
148 
149 };
150 
152 {
153  Q_OBJECT
154 
155 public:
157 
158  virtual ~DtDisplayDefinitionWidget();
159 
160  virtual void init();
161 
162  virtual void edit(const DtEntityMapperKey&, bool move = true, bool fromSelection = false);
163  virtual void clearContents();
164 
165  static DtDisplayDefinitionWidget* create(QWidget*);
166  virtual bool hasOneDiGuy() const;
167 
168  virtual void revertExisting(const 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 protected:
180  virtual void postInitialize();
181 
184  virtual void setupVisualBases(const makVrv::DtElementDefinitionNew*);
185 
186  virtual bool setupEditor(int set);
187 
188  virtual void createNewEntry(const DtEntityType& newType, DtModelSetEntry* model, const DtEntityType& basedOnType = DtEntityType());
189 
190  virtual DtVector visualPlacementFor(int set, const DtString&) const;
191  virtual double groundHeight(const DtVector&) const;
192 
193  virtual void positionToObject(int observer, bool allIs2D);
194  virtual void createOrUpdatePositionMarker(const DtUiElementEvent&);
195  virtual void destroyPositionMarker(const DtUiElementEvent&);
196  virtual void setBoundingVolume(const DtUiElementEvent&);
197 
200  virtual void mergeVisualizerAttributes(int modelSet, const makVrv::DtVisualizerDefinitionSet& source, makVrv::DtElementDefinitionNew* target) const;
201 
203  virtual void createEntryIfNoEntry(const DtEntityType&);
204  virtual void createEntityIfNoEntry(const DtEntityType&);
205  virtual void createTacticalGraphicIfNoEntry(const DtEntityType&);
206  virtual void createAggregateIfNoEntry(const DtEntityType&);
207 
208  virtual void setupLabel();
209  virtual void createEditors(bool allIs2D);
210  virtual void updateSpecifics();
211  virtual bool hasScribeOnExtent() const;
212  virtual void setShowScribeOnExtent(bool);
213 
214  virtual void hasVertices(QCheckBox*);
215  virtual void hasSymbolDecorations(QCheckBox*);
216  virtual void isEllipse(QCheckBox*);
217  virtual void setupArrowStyle(QComboBox*);
218  virtual void setupDefaultWidth(QSpinBox*);
219  virtual void setupArrowSize(QSpinBox*);
220  virtual void setupArrowFrequency(QComboBox*);
221  virtual void setupLineStyle(QComboBox*);
222  virtual void setupFillStyle(QComboBox*);
223  virtual void setupStipple(QComboBox*);
224  virtual void setupDefaultColor(QPushButton*);
225  virtual void setup(const std::string& attribute, QComboBox*);
226  virtual void setup(const std::string& attribute, QSpinBox*);
227  virtual DtString createVisualizerNameFor(makVrv::DtElementDefinitionManager*, DtModelSetEntry* entry);
228 
229 public slots:
230  virtual void forcesModified();
231  virtual void setMarkerLabelsVisible(bool);
232  virtual void setBoundingVolumesVisible(bool);
233 
234  virtual bool setupForTacticalGraphic(const DtEntityType&, const std::vector<int>& modelSets);
235  virtual bool setupForEntity(const DtEntityType&, const std::vector<int>& modelSets);
236 
237 protected slots:
238  virtual void visualBaseChanged(int);
239  virtual void visualizerModified();
240  virtual void modelDefinitionModified();
241  virtual void opdEntryAdded(DtVrfObjectParameters* entry, DtModelSetEntry* model, const DtEntityType&);
242  virtual void markerVisibilityChanged();
243  virtual void boundingVolumesVisibilityChanged();
244  virtual void showVertices();
245  virtual void showSymbolDecorations();
246  virtual void setIsEllipse();
247  virtual void visualizerEnabledChanged();
248  virtual void changeArrowStyle(int);
249  virtual void changeDefaultWidth(int);
250  virtual void changeArrowSize(int);
251  virtual void changeArrowFrequency(int);
252  virtual void changeLineStyle(int);
253  virtual void changeFillStyle(int);
254  virtual void change(const std::string& style, int);
255  virtual void changeStipple(int);
256  virtual void changeDefaultColor();
257 
258 signals:
259  void visualsModified();
260  void uiElementEvent(const DtUiElementEvent&);
261  void redisplayListIcons();
262 
263 public:
267  QHBoxLayout* myMainLayout;
268  QGroupBox* myGroupBox;
269 
270 protected:
273  QHBoxLayout* myEditorLayout;
274  QHBoxLayout* myTitleLayout;
275 
276  typedef std::vector<makVrf::DtVrfObjectFacadeInterface*> Facades;
277 
279 
283 
284  typedef std::pair<makVrv::DtElementDefinitionManager*, makVrv::DtElementDefinitionNew*> ElementDefinitionPair;
285  typedef std::map<std::string, ElementDefinitionPair> ElementDefinitionMap;
286 
288 
289  std::map<int, DtVisualEditor*> myEditors;
290  std::vector<QCheckBox*> myTitles;
291 
296 
297  typedef std::pair<DtVector, DtTaitBryan> CameraInfo;
298  typedef std::map<int, CameraInfo> CameraMap;
300 
301  typedef std::map<int, DtMarkerVisualizer*> Markers;
303 
307 
308 
309  Ui_DtTacticalGraphicStylesUi myStylesImpl;
316  std::string myLabel;
319 };

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)