VR-Forces 4.6.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
entityFacadeCollection.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 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 <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 DtBoundingVolumeSupportPointCalculator;
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 
87  virtual bool isVisualized() const;
88 
90  virtual void setupNodeMaskFlags() const;
91 
93  virtual void setSetupNodeMaskFlags(bool);
94 
98  virtual std::map<int, std::vector<int> > modelStates(int modelSet) const;
99 
102  virtual std::vector<int> artParts(int modelSet) const;
103 
105  virtual void enableArtPart(int modelSet, int artPart, bool enable, const DtVector& translationRate = DtVector::zero(),
106  const DtVector& rotationalRate = DtVector::zero());
107 
110  virtual void setModelState(int modelSet, int, int);
111 
113  virtual void setTopographicOrientation(const DtTaitBryan& orientation);
114 
116  virtual void setLocalOrientation(const DtTaitBryan& orientation);
117 
119  virtual void setOrigin(const DtVector& v);
120  virtual void setOrigin(const DtGeodeticCoord& v);
121 
123  virtual void setOriginAndSeaLevel(const DtVector& v);
124  virtual void setOriginAndSeaLevel(const DtGeodeticCoord& v);
125 
126  virtual void setDropShadow(bool b);
127  virtual void setLocationOffsetFromPrincipal( const DtGeodeticCoord& offset, bool resetLocation = true );
128  virtual void setAltitudeOffsetFromPrincipal( double offset, bool resetLocation = true );
129 
131  virtual void setForceId(int);
132  int forceId() const;
133  virtual bool hasForceChange() const;
134 
136  virtual double initialAltitudeAboveTerrain() const;
137 
138  virtual makVrv::DtBaseConnection& baseConnection() const;
139 
141  void setHatLineVisible( bool visible );
142 
144  void setTrackHistoryVisible( bool visible );
145 
147  virtual void setVisible(bool b);
148  virtual void setVisible(bool, int context);
149  virtual bool isVisible() const;
150 
152  virtual void setUseHighestTerrainLod(bool);
153 
155  virtual void setPickable(bool b);
156 
158  virtual void setSelected(bool b);
159 
161  virtual void setLabel(const std::string& label);
162  virtual std::string label() const;
163  virtual bool hasLabelChange() const;
164 
166  virtual void setExtendedLabels(const std::map<int, DtString>& labels);
167  virtual std::map<int, DtString> extendedLabels() const;
168  virtual bool hasExtendedLabelsChange() const;
169 
171  virtual void setOverlayName(const std::string&);
172  virtual std::string overlayName() const;
173 
175  virtual void setIndicatorVisible(bool b);
176 
178  virtual Dt3dBoundingVolume boundingVolume(int modelSet = 0) const;
179 
181  virtual void calculateSupportPoints(int modelSet, DtVector& left, DtVector& right, DtVector& other) const;
182 
184  virtual void setAttachedTo(DtVrfObjectFacadeInterface*, const DtVector& offset, const DtTaitBryan&);
185  virtual void detach();
186 
187  virtual void setUniqueID(makVrv::DtUniqueID);
188  virtual makVrv::DtUniqueID uniqueID() const;
189  virtual std::vector<makVrv::DtUniqueID> modelUniqueIDs() const;
190 
192  virtual void setWidgetEventsEnabled(bool b);
193 
195  virtual void setGroundClamping(bool b);
196  virtual void setDeadReckoning(bool position, bool velocity, bool orientation);
197 
199  virtual void setSymbolDecorationOffset(double x, double y);
200 
202  virtual void setAutoEnableGroundClamping(bool b);
203 
205  virtual void realizeFacades();
206 
208  virtual void unrealizeFacades();
209 
212  virtual void setDictionaryToDisplay(int);
213  bool dictionaryToDisplay() const { return myDictionaryToDisplay; };
214 
217  virtual bool hasProjectedModel(int modelSet) const;
218 
222  virtual void setElementDefinition(const makVrv::DtUnicode& elementName);
223 
225  virtual const makVrv::DtUnicode& elementDefinition() const;
226 
229  virtual void setElementDefinition(const DtEntityType&);
230 
232  void setSmoothingEnabled(bool enabled);
233 
235  void setMotionModel(const std::string&);
236 
238  virtual void setLabelIndicatorVisible(bool);
239 
241  virtual void setHeadingIndicatorVisible(bool);
242 
244  virtual void setHeadingIndicatorSize(float l);
245 
247  virtual bool isDiGuy() const { return myIsDiGuy; };
248 
250  virtual DtVector position() const;
251 
252  virtual makVrv::DtUniqueID uniqueIDForModelSet(int set) const;
253 
255  virtual void setEffectsVisible(bool);
256 
258  virtual bool shouldEnableTrailEffects() const;
259 
261  virtual void enableTrailEffect(bool);
262 
265  virtual void setAltitudeAboveTerrain(double d);
266 
269  virtual void setAltitudeAboveSeaLevel(double d);
270 
272  virtual bool hasWakeModel(int set);
273  virtual void setWakeLOD(double);
274 
275  virtual const DtVector32& velocity() const;
276  virtual void setVelocity(const DtVector32& v);
277 
279  template <typename T> void visualizers(int modelSet, std::vector<T>& visualizers) const
280  {
281  if (myModelSetMap.find(modelSet) == myModelSetMap.end())
282  {
283  return;
284  }
285 
286  myModelSetMap.find(modelSet)->second->findVisualizersByDynamicCast(visualizers);
287  }
288 
290  template <typename T> bool hasVisualizer(makVrv::DtVisualizerSet* s) const
291  {
292  if (!s)
293  {
294  return false;
295  }
296 
297  std::vector<T> visualizers;
298  s->findVisualizersByDynamicCast(visualizers);
299 
300  return (visualizers.size() != 0);
301  }
302 
304  virtual void setIconScale(float);
305  template <typename T> void setIconScale(makVrv::DtVisualizerSet* s, float scale)
306  {
307  std::vector<T> visualizers;
308  s->findVisualizersByDynamicCast(visualizers);
309  typename std::vector<T>::iterator i = visualizers.begin();
310  typename std::vector<T>::iterator e = visualizers.end();
311  for(;i != e; ++i)
312  {
313  if (*i)
314  {
315  (*i)->setIconScale(scale);
316  }
317  }
318  }
319 
320  virtual void setExtendedData(const std::map<std::string, std::string>&);
321  virtual std::map<std::string, std::string> extendedData() const;
322 
323  virtual void destroySchema(const makVrv::DtVisualizerSchema&);
324 
326  virtual void setEntityExtents(const DtVector& volume, const DtVector& offset);
327 
329  virtual bool hasBoundingVolumes() const;
330 
332  virtual void setEntityExtentsVisible(bool, int modelSet = -1);
333  template <typename T> void setEntityExtentsVisible(makVrv::DtVisualizerSet* s, bool b, int modelSet = -1)
334  {
335  std::vector<T> visualizers;
336  s->findVisualizersByDynamicCast(visualizers);
337  typename std::vector<T>::iterator i = visualizers.begin();
338  typename std::vector<T>::iterator e = visualizers.end();
339  for(;i != e; ++i)
340  {
341  if (*i)
342  {
343  if ((modelSet == -1) || (modelSet == ((MyStateVisualizer*)(*i))->modelSet()))
344  {
345  (*i)->setVisible(b);
346  }
347  }
348  }
349  }
350 
351  template <typename T> void setScale(makVrv::DtVisualizerSet* s, float scale)
352  {
353  std::vector<T> visualizers;
354  s->findVisualizersByDynamicCast(visualizers);
355  typename std::vector<T>::iterator i = visualizers.begin();
356  typename std::vector<T>::iterator e = visualizers.end();
357  for(;i != e; ++i)
358  {
359  if (*i)
360  {
361  (*i)->setScale(scale);
362  }
363  }
364  }
365 
366  template <typename T> void setForceColor(makVrv::DtVisualizerSet* s, makVrv::DtForceManager::RGBAColor color)
367  {
368  std::vector<T> visualizers;
369  s->findVisualizersByDynamicCast(visualizers);
370  typename std::vector<T>::iterator i = visualizers.begin();
371  typename std::vector<T>::iterator e = visualizers.end();
372  for(;i != e; ++i)
373  {
374  if (*i)
375  {
376  (*i)->setForceColor(color.R, color.G, color.B, color.A);
377  }
378  }
379  }
380 
381  template <typename T> void setColor(makVrv::DtVisualizerSet* s, makVrv::DtForceManager::RGBAColor color)
382  {
383  std::vector<T> visualizers;
384  s->findVisualizersByDynamicCast(visualizers);
385  typename std::vector<T>::iterator i = visualizers.begin();
386  typename std::vector<T>::iterator e = visualizers.end();
387  for(;i != e; ++i)
388  {
389  if (*i)
390  {
391  (*i)->setColor(color.R, color.G, color.B, color.A);
392  }
393  }
394  }
395 
396  void setBoundingExtentColor(float r, float g, float b, float a);
397 
399  virtual std::string diGuyCharacter() const;
400 
402  virtual std::string diGuyAppearance() const;
403 
405  virtual std::string diGuyHandItem() const;
407  virtual std::string diGuyHead() const;
408 
410  virtual void setAppearance(int);
411  virtual void setLifeFormState(unsigned int, bool paused = false);
412  virtual void setCharacterWeaponAiming(bool aiming);
413  virtual void setEnableAnimationSmoothing(bool);
414  virtual void setCharacterAction(const std::string& animation, bool paused = false);
415  virtual void setCharacterModel(const std::string& animation);
416  virtual void setCharacterBodyWeight(double);
417  virtual void setCharacterAlive(bool);
418  virtual std::string characterModel() const;
419 
420  virtual void setCharacterAppearance(const std::string& animation);
421  virtual void setCharacterHandItem(const std::string& item);
422  virtual void setCharacterHead(const std::string& head);
423 
425  virtual void setDisplayName( const std::string& displayName );
426 
428  virtual void setSymbolNameVisible(bool);
429 
430  virtual void setSymbolDecorationsVisible(bool);
431 
432  virtual bool isAggregate() const
433  {
434  return myIsAggregate;
435  }
436 
438  virtual void updateSymbolRotation(const DtTaitBryan&);
439 
441  virtual void updateSymbolRotation(double);
442 
444  virtual void setRotateToHeading(bool);
445  bool rotateToHeading() const
446  {
447  return myRotateToHeading;
448  }
449 
450  protected:
453 
456 
461 
462  std::string myOverlay;
469 
470  std::string myDiGuyAppearance;
471  std::string myDiGuyHandItem;
472  std::string myDiGuyHead;
473  std::string myCharacterAction;
474  std::string myCharacterModel;
477 
478  bool myIsDiGuy;
490 
491  typedef std::map<int, std::map<int, int> > ActivatedStates;
493 
495 
497 
499  };
500 }
501 

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)