VR-Forces 4.2 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 
18 #include <vrvCore/DtBaseConnection.h>
19 #include <vrvCore/DtAggregateStateListener.h>
20 #include <vrvCore/DtSharedModelSetSettings.h>
21 #include <vrvCore/DtVisualizerSet.h>
22 #include <vrvUtil/DtUnicode.h>
23 #include <vrvVrl/DtForceManager.h>
24 
25 #include <matrix/vlVector.h>
26 #include <matrix/vlTaitBryan.h>
27 
28 #include <string>
29 #include <map>
30 
31 class DtEntityType;
32 
33 namespace makVrv
34 {
35  class DtVisualDefinitionSet;
36  class DtAgentManagerInterface;
37  class DtDe;
38  class DtBaseConnection;
39 }
40 
41 namespace makVrf
42 {
43  class MyStateVisualizer : public makVrv::DtStateVisualizer
44  {
45  public:
46  MyStateVisualizer(makVrv::DtBaseConnection& connection, makVrv::DtStateListener& listener,
47  int modelSet) : makVrv::DtStateVisualizer(connection, listener, modelSet) {};
48 
49  int modelSet() const { return myModelSet; };
50  };
51 
52  class DT_DLL_VRFGUICORE DtExtAggregateStateListener : public makVrv::DtAggregateStateListener, public DtEntityStateListenerExtensions
53  {
54  public:
57  };
58 
60  {
61  public:
62  typedef std::map<int, makVrv::DtVisualizerSet*> ModelSetMap;
63 
64  public:
65  DtEntityFacadeCollection(makVrv::DtDe&, int modelSet = -1);
66  virtual ~DtEntityFacadeCollection();
67 
68  public:
70 
72  virtual void visualize(const makVrv::DtUnicode& type,
73  const makVrv::DtSharedModelSetSettings::ModelSetVisualizedMap& sets);
74 
75  const ModelSetMap& modelSetMap() const
76  {
77  return myModelSetMap;
78  }
79 
80  ModelSetMap& modelSetMap()
81  {
82  return myModelSetMap;
83  }
84 
86  virtual void setOrientation(const DtTaitBryan& orientation);
87 
89  virtual void setOrigin(const DtVector& v);
90  virtual void setOrigin(const DtGeodeticCoord& v);
91 
93  virtual void setOriginAndSeaLevel(const DtVector& v);
94  virtual void setOriginAndSeaLevel(const DtGeodeticCoord& v);
95 
97  virtual void setForceId(int);
98  int forceId() const;
99  virtual bool hasForceChange() const;
100 
101  virtual makVrv::DtBaseConnection& baseConnection() const;
102 
104  void setHatLineVisible( bool visible );
105 
107  virtual void setVisible(bool b);
108 
110  virtual void setPickable(bool b);
111 
113  virtual void setSelected(bool b);
114 
116  virtual void setLabel(const std::string& label);
117  virtual std::string label() const;
118  virtual bool hasLabelChange() const;
119 
121  virtual void setOverlayName(const std::string&);
122  virtual std::string overlayName() const;
123 
125  virtual void setIndicatorVisible(bool b);
126 
128  virtual Dt3dBoundingVolume boundingVolume() const;
129 
130  virtual void setUniqueID(makVrv::DtUniqueID);
131  makVrv::DtUniqueID uniqueID() const;
132 
134  virtual void setWidgetEventsEnabled(bool b);
135 
137  virtual void setGroundClamping(bool b);
138 
140  virtual void setSymbolDecorationOffset(double x, double y);
141 
143  virtual void setAutoEnableGroundClamping(bool b);
144 
146  virtual void realizeFacades();
147 
149  virtual void unrealizeFacades();
150 
153  virtual bool hasProjectedModel(int modelSet) const;
154 
158  virtual void setElementDefinition(const makVrv::DtUnicode& elementName);
159 
161  virtual const makVrv::DtUnicode& elementDefinition() const;
162 
165  virtual void setElementDefinition(const DtEntityType&);
166 
168  void setSmoothingEnabled(bool enabled);
169 
171  void setMotionModel(const std::string&);
172 
174  virtual void setHeadingIndicatorVisible(bool);
175 
177  virtual void setHeadingIndicatorSize(float l);
178 
180  virtual bool isDiGuy() const { return myIsDiGuy; };
181 
183  virtual DtVector position() const;
184 
185  virtual makVrv::DtUniqueID uniqueIDForModelSet(int set) const;
186 
188  virtual void setEffectsVisible(bool);
189 
191  virtual bool shouldEnableTrailEffects() const;
192 
194  virtual void enableTrailEffect(bool);
195 
198  virtual void setAltitudeAboveTerrain(double d);
199 
202  virtual void setAltitudeAboveSeaLevel(double d);
203 
205  template <typename T> bool hasVisualizer(makVrv::DtVisualizerSet* s) const
206  {
207  std::vector<T> visualizers;
208  s->findVisualizersByDynamicCast(visualizers);
209 
210  return (visualizers.size() != 0);
211  }
212 
214  virtual void setIconScale(float);
215  template <typename T> void setIconScale(makVrv::DtVisualizerSet* s, float scale)
216  {
217  std::vector<T> visualizers;
218  s->findVisualizersByDynamicCast(visualizers);
219  typename std::vector<T>::iterator i = visualizers.begin();
220  typename std::vector<T>::iterator e = visualizers.end();
221  for(;i != e; ++i)
222  {
223  if (*i)
224  {
225  (*i)->setIconScale(scale);
226  }
227  }
228  }
229 
230  virtual void destroySchema(const makVrv::DtVisualizerSchema&);
231 
233  virtual void setEntityExtents(const DtVector& volume, const DtVector& offset);
234 
236  virtual bool hasBoundingVolumes() const;
237 
239  virtual void setEntityExtentsVisible(bool, int modelSet = -1);
240  template <typename T> void setEntityExtentsVisible(makVrv::DtVisualizerSet* s, bool b, int modelSet = -1)
241  {
242  std::vector<T> visualizers;
243  s->findVisualizersByDynamicCast(visualizers);
244  typename std::vector<T>::iterator i = visualizers.begin();
245  typename std::vector<T>::iterator e = visualizers.end();
246  for(;i != e; ++i)
247  {
248  if (*i)
249  {
250  if ((modelSet == -1) || (modelSet == ((MyStateVisualizer*)(*i))->modelSet()))
251  {
252  (*i)->setVisible(b);
253  }
254  }
255  }
256  }
257 
258  template <typename T> void setScale(makVrv::DtVisualizerSet* s, float scale)
259  {
260  std::vector<T> visualizers;
261  s->findVisualizersByDynamicCast(visualizers);
262  typename std::vector<T>::iterator i = visualizers.begin();
263  typename std::vector<T>::iterator e = visualizers.end();
264  for(;i != e; ++i)
265  {
266  if (*i)
267  {
268  (*i)->setScale(scale);
269  }
270  }
271  }
272 
273  template <typename T> void setForceColor(makVrv::DtVisualizerSet* s, makVrv::DtForceManager::RGBAColor color)
274  {
275  std::vector<T> visualizers;
276  s->findVisualizersByDynamicCast(visualizers);
277  typename std::vector<T>::iterator i = visualizers.begin();
278  typename std::vector<T>::iterator e = visualizers.end();
279  for(;i != e; ++i)
280  {
281  if (*i)
282  {
283  (*i)->setForceColor(color.R, color.G, color.B, color.A);
284  }
285  }
286  }
287 
288  template <typename T> void setColor(makVrv::DtVisualizerSet* s, makVrv::DtForceManager::RGBAColor color)
289  {
290  std::vector<T> visualizers;
291  s->findVisualizersByDynamicCast(visualizers);
292  typename std::vector<T>::iterator i = visualizers.begin();
293  typename std::vector<T>::iterator e = visualizers.end();
294  for(;i != e; ++i)
295  {
296  if (*i)
297  {
298  (*i)->setColor(color.R, color.G, color.B, color.A);
299  }
300  }
301  }
302 
304  virtual std::string diGuyCharacter() const;
305 
307  virtual void setAppearance(int);
308  virtual void setLifeFormState(unsigned int, bool paused = false);
309  virtual void setCharacterAction(const std::string& animation, bool paused = false);
310  virtual void setCharacterModel(const std::string& animation);
311  virtual void setCharacterAppearance(const std::string& animation);
312 
314  virtual void setDisplayName( const std::string& displayName );
315 
316  virtual void setSymbolDecorationsVisible(bool);
317 
318  virtual bool isAggregate() const
319  {
320  return myIsAggregate;
321  }
322 
324  protected:
326  makVrv::DtUnicode myElementDefinition;
327 
328  makVrv::DtBaseConnection* myConnection;
329 
334 
335  std::string myOverlay;
340 
341  bool myIsDiGuy;
342  };
343 }
344 

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)