VR-Forces 4.1 Class Documentation
DtEntityFacadeCollection.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2011 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
14 #include <vrfGuiCore/vrfGuiCore.h>
17 
22 #include <vrvUtil/DtUnicode.h>
23 #include <vrvVrl/DtForceManager.h>
24 
25 #include <matrix/vlVector.h>
26 #include <matrix/vlTaitBryan.h>
27 
28 #include <vlpi/entityType.h>
29 
30 #include <string>
31 #include <map>
32 
33 class DtEntityType;
34 
35 namespace makVrv
36 {
37  class DtVisualDefinitionSet;
38  class DtAgentManagerInterface;
39  class DtDe;
40  class DtBaseConnection;
41 }
42 
43 namespace makVrf
44 {
46  {
47  public:
49  int modelSet) : makVrv::DtStateVisualizer(connection, listener, modelSet) {};
50 
51  int modelSet() const { return myModelSet; };
52  };
53 
55  {
56  public:
57  DtExtAggregateStateListener(makVrv::DtUniqueID id) : makVrv::DtAggregateStateListener(id), DtEntityStateListenerExtensions(id) {};
59  };
60 
62  {
63  public:
64  typedef std::map<int, makVrv::DtVisualizerSet*> ModelSetMap;
65 
66  public:
67  DtEntityFacadeCollection(makVrv::DtDe&, int modelSet = -1);
68  virtual ~DtEntityFacadeCollection();
69 
70  public:
72 
74  virtual void visualize(const makVrv::DtUnicode& type,
76 
77  const ModelSetMap& modelSetMap() const
78  {
79  return myModelSetMap;
80  }
81 
82  ModelSetMap& modelSetMap()
83  {
84  return myModelSetMap;
85  }
86 
88  virtual void setOrientation(const DtTaitBryan& orientation);
89 
91  virtual void setOrigin(const DtVector& v);
92  virtual void setOrigin(const DtGeodeticCoord& v);
93 
95  virtual void setOriginAndSeaLevel(const DtVector& v);
96  virtual void setOriginAndSeaLevel(const DtGeodeticCoord& v);
97 
99  virtual void setForceId(int);
100  int forceId() const;
101  virtual bool hasForceChange() const;
102 
103  virtual makVrv::DtBaseConnection& baseConnection() const;
104 
106  void setHatLineVisible( bool visible );
107 
109  virtual void setVisible(bool b);
110 
112  virtual void setPickable(bool b);
113 
115  virtual void setSelected(bool b);
116 
118  virtual void setLabel(const std::string& label);
119  virtual std::string label() const;
120  virtual bool hasLabelChange() const;
121 
123  virtual void setOverlayName(const std::string&);
124  virtual std::string overlayName() const;
125 
127  virtual void setIndicatorVisible(bool b);
128 
129  virtual void setUniqueID(makVrv::DtUniqueID);
130  makVrv::DtUniqueID uniqueID() const;
131 
133  virtual void setWidgetEventsEnabled(bool b);
134 
136  virtual void setGroundClamping(bool b);
137 
139  virtual void setSymbolDecorationOffset(double x, double y);
140 
142  virtual void setAutoEnableGroundClamping(bool b);
143 
145  virtual void realizeFacades();
146 
148  virtual void unrealizeFacades();
149 
152  virtual bool hasProjectedModel(int modelSet) const;
153 
157  virtual void setElementDefinition(const makVrv::DtUnicode& elementName);
158 
160  virtual const makVrv::DtUnicode& elementDefinition() const;
161 
164  virtual void setElementDefinition(const DtEntityType&);
165 
167  void setSmoothingEnabled(bool enabled);
168 
170  void setMotionModel(const std::string&);
171 
173  virtual void setHeadingIndicatorVisible(bool);
174 
176  virtual void setHeadingIndicatorSize(float l);
177 
179  //virtual bool visualDefinitionSetFor(const std::string& type, makVrv::DtVisualDefinitionSet&, int, bool& isAggregate);
180 
182  virtual DtVector position() const;
183 
184  virtual makVrv::DtUniqueID uniqueIDForModelSet(int set) const;
185 
187  virtual void setEffectsVisible(bool);
188 
191  virtual void setAltitudeAboveTerrain(double d);
192 
195  virtual void setAltitudeAboveSeaLevel(double d);
196 
198  template <typename T> bool hasVisualizer(makVrv::DtVisualizerSet* s) const
199  {
200  std::vector<T> visualizers;
201  s->findVisualizersByDynamicCast(visualizers);
202 
203  return (visualizers.size() != 0);
204  }
205 
207  virtual void setIconScale(float);
208  template <typename T> void setIconScale(makVrv::DtVisualizerSet* s, float scale)
209  {
210  std::vector<T> visualizers;
211  s->findVisualizersByDynamicCast(visualizers);
212  typename std::vector<T>::iterator i = visualizers.begin();
213  typename std::vector<T>::iterator e = visualizers.end();
214  for(;i != e; ++i)
215  {
216  if (*i)
217  {
218  (*i)->setIconScale(scale);
219  }
220  }
221  }
222 
223  virtual void destroySchema(const makVrv::DtVisualizerSchema&);
224 
226  virtual void setEntityExtents(const DtVector& volume, const DtVector& offset);
227 
229  virtual bool hasBoundingVolumes() const;
230 
232  virtual void setEntityExtentsVisible(bool, int modelSet = -1);
233  template <typename T> void setEntityExtentsVisible(makVrv::DtVisualizerSet* s, bool b, int modelSet = -1)
234  {
235  std::vector<T> visualizers;
236  s->findVisualizersByDynamicCast(visualizers);
237  typename std::vector<T>::iterator i = visualizers.begin();
238  typename std::vector<T>::iterator e = visualizers.end();
239  for(;i != e; ++i)
240  {
241  if (*i)
242  {
243  if ((modelSet == -1) || (modelSet == ((MyStateVisualizer*)(*i))->modelSet()))
244  {
245  (*i)->setVisible(b);
246  }
247  }
248  }
249  }
250 
251  template <typename T> void setScale(makVrv::DtVisualizerSet* s, float scale)
252  {
253  std::vector<T> visualizers;
254  s->findVisualizersByDynamicCast(visualizers);
255  typename std::vector<T>::iterator i = visualizers.begin();
256  typename std::vector<T>::iterator e = visualizers.end();
257  for(;i != e; ++i)
258  {
259  if (*i)
260  {
261  (*i)->setScale(scale);
262  }
263  }
264  }
265 
266  template <typename T> void setForceColor(makVrv::DtVisualizerSet* s, makVrv::DtForceManager::RGBAColor color)
267  {
268  std::vector<T> visualizers;
269  s->findVisualizersByDynamicCast(visualizers);
270  typename std::vector<T>::iterator i = visualizers.begin();
271  typename std::vector<T>::iterator e = visualizers.end();
272  for(;i != e; ++i)
273  {
274  if (*i)
275  {
276  (*i)->setForceColor(color.R, color.G, color.B, color.A);
277  }
278  }
279  }
280 
281  template <typename T> void setColor(makVrv::DtVisualizerSet* s, makVrv::DtForceManager::RGBAColor color)
282  {
283  std::vector<T> visualizers;
284  s->findVisualizersByDynamicCast(visualizers);
285  typename std::vector<T>::iterator i = visualizers.begin();
286  typename std::vector<T>::iterator e = visualizers.end();
287  for(;i != e; ++i)
288  {
289  if (*i)
290  {
291  (*i)->setColor(color.R, color.G, color.B, color.A);
292  }
293  }
294  }
295 
297  virtual void setDisplayName( const std::string& displayName );
298 
299  virtual void setSymbolDecorationsVisible(bool);
300 
301  virtual bool isAggregate() const
302  {
303  return myIsAggregate;
304  }
305 
307  protected:
309  DtEntityType myEntityType;
311 
313 
318 
319  std::string myOverlay;
324  };
325 }
326 

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)