VR-Forces 4.7 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 DtStatePropertyDecorationVisualizer;
39  class DtBaseConnection;
40 }
41 
42 namespace makVrf
43 {
44  class DtBoundingVolumeSupportPointCalculator;
45 
47  {
48  public:
50  int modelSet) : makVrv::DtStateVisualizer(connection, listener, modelSet) {};
51 
52  int modelSet() const { return myModelSet; };
53  };
54 
56  {
57  public:
58  DtExtAggregateStateListener(makVrv::DtUniqueID id) : makVrv::DtAggregateStateListener(id), DtEntityStateListenerExtensions(id) {};
60  };
61 
63  {
64  public:
65  typedef std::map<int, makVrv::DtVisualizerSet*> ModelSetMap;
66 
67  public:
68  DtEntityFacadeCollection(makVrv::DtDe&, int modelSet = -1);
69  virtual ~DtEntityFacadeCollection();
70 
71  public:
73 
75  virtual void visualize(const makVrv::DtUnicode& type,
77 
78  const ModelSetMap& modelSetMap() const
79  {
80  return myModelSetMap;
81  }
82 
83  ModelSetMap& modelSetMap()
84  {
85  return myModelSetMap;
86  }
87 
88  virtual bool isVisualized() const;
89 
91  virtual void setupNodeMaskFlags() const;
92 
94  virtual void setSetupNodeMaskFlags(bool);
95 
99  virtual std::map<int, std::vector<int> > modelStates(int modelSet) const;
100 
103  virtual std::vector<int> artParts(int modelSet) const;
104 
106  virtual void enableArtPart(int modelSet, int artPart, bool enable, const DtVector& translationRate = DtVector::zero(),
107  const DtVector& rotationalRate = DtVector::zero());
108 
110  virtual void getArtPartInformation(int modelSet, int artPart, DtVector& minRotation, DtVector& maxRotation, DtVector& minTranslation, DtVector& maxTranslation);
111 
114  virtual void setModelState(int modelSet, int, int);
115 
117  virtual void setTopographicOrientation(const DtTaitBryan& orientation);
118 
119  virtual void setTopographicOffsetFromPrincipal(const DtVector&, bool resetLocation = true);
120 
122  virtual void setLocalOrientation(const DtTaitBryan& orientation);
123 
125  virtual void setOrigin(const DtVector& v);
126  virtual void setOrigin(const DtGeodeticCoord& v);
127 
129  virtual void setOriginAndSeaLevel(const DtVector& v);
130  virtual void setOriginAndSeaLevel(const DtGeodeticCoord& v);
131 
132  virtual bool hasOccupant() const;
133 
134  virtual void setDropShadow(bool b);
135  virtual void setAltitudeOffsetFromPrincipal( double offset, bool resetLocation = true );
136 
138  virtual void setForceId(int);
139  int forceId() const;
140  virtual bool hasForceChange() const;
141 
143  virtual double initialAltitudeAboveTerrain() const;
144 
145  virtual makVrv::DtBaseConnection& baseConnection() const;
146 
148  void setHatLineVisible( bool visible );
149 
151  void setTrackHistoryVisible( bool visible );
152 
154  virtual void setVisible(bool b, bool updateOffsets = true);
155  virtual void setVisible(bool, int context);
156  virtual bool isVisible() const;
157 
159  virtual void setUseHighestTerrainLod(bool);
160 
162  virtual void setPickable(bool b);
163 
165  virtual void setSelected(bool b);
166 
168  virtual void setLabel(const std::string& label);
169  virtual std::string label() const;
170  virtual bool hasLabelChange() const;
171 
173  virtual void setExtendedLabels(const std::map<int, DtString>& labels);
174  virtual std::map<int, DtString> extendedLabels() const;
175  virtual bool hasExtendedLabelsChange() const;
176 
178  virtual void setOverlayName(const std::string&);
179  virtual std::string overlayName() const;
180 
182  virtual void setIndicatorVisible(bool b);
183 
185  virtual Dt3dBoundingVolume boundingVolume(int modelSet = 0) const;
186 
188  virtual void calculateSupportPoints(int modelSet, DtVector& left, DtVector& right, DtVector& other) const;
189 
191  virtual void setAttachedTo(DtVrfObjectFacadeInterface*, const DtVector& offset, const DtTaitBryan&);
192  virtual void detach();
193 
194  virtual void setUniqueID(makVrv::DtUniqueID);
195  virtual makVrv::DtUniqueID uniqueID() const;
196  virtual std::vector<makVrv::DtUniqueID> modelUniqueIDs() const;
197 
199  virtual void setMarkingDecal(const std::string& annotation, const std::string& value);
200  const std::map<std::string, std::string>& markingDecalMap() const
201  {
202  return myMarkingDecals;
203  }
204 
205  virtual void clearMarkingDecals();
206 
208  virtual bool hasMultipleLODs(int modelSet = 0) const;
209 
211  virtual void setWidgetEventsEnabled(bool b);
212 
214  virtual void setGroundClamping(bool b);
215  virtual void setDeadReckoning(bool position, bool velocity, bool orientation);
216 
218  virtual void setSymbolDecorationOffset(double x, double y);
219 
221  virtual void setAutoEnableGroundClamping(bool b);
222 
224  virtual void realizeFacades();
225 
227  virtual void unrealizeFacades();
228 
231  virtual void setDictionaryToDisplay(int);
232  bool dictionaryToDisplay() const { return myDictionaryToDisplay; };
233 
236  virtual bool hasProjectedModel(int modelSet) const;
237 
241  virtual void setElementDefinition(const makVrv::DtUnicode& elementName);
242 
244  virtual const makVrv::DtUnicode& elementDefinition() const;
245 
248  virtual void setElementDefinition(const DtEntityType&);
249 
251  void setSmoothingEnabled(bool enabled);
252 
254  void setMotionModel(const std::string&);
255 
257  virtual void setLabelIndicatorVisible(bool);
258 
260  virtual void setHeadingIndicatorVisible(bool);
261 
263  virtual void setHeadingIndicatorSize(float l);
264 
266  virtual bool isDiGuy() const { return myIsDiGuy; };
267 
269  virtual DtVector position() const;
270 
271  virtual makVrv::DtUniqueID uniqueIDForModelSet(int set) const;
272 
274  virtual void setEffectsVisible(bool);
275 
277  virtual bool shouldEnableTrailEffects() const;
278 
280  virtual void enableTrailEffect(bool);
281 
284  virtual void setAltitudeAboveTerrain(double d);
285 
288  virtual void setAltitudeAboveSeaLevel(double d);
289 
291  virtual bool hasWakeModel(int set);
292  virtual void setWakeLOD(double);
293  virtual void setShowWakes(bool b, int modelSet = -1);
294 
295  virtual void setShowSmoke(bool b, int modelSet = -1);
296  virtual void setShowFlames(bool b, int modelSet = -1);
297 
298  virtual void setShowOccupants(bool b);
299 
300  virtual const DtVector32& velocity() const;
301  virtual void setVelocity(const DtVector32& v);
302 
304  template <typename T> void visualizers(int modelSet, std::vector<T>& visualizers) const
305  {
306  if (myModelSetMap.find(modelSet) == myModelSetMap.end())
307  {
308  return;
309  }
310 
311  myModelSetMap.find(modelSet)->second->findVisualizersByDynamicCast(visualizers);
312  }
313 
315  template <typename T> bool hasVisualizer(makVrv::DtVisualizerSet* s) const
316  {
317  if (!s)
318  {
319  return false;
320  }
321 
322  std::vector<T> visualizers;
323  s->findVisualizersByDynamicCast(visualizers);
324 
325  return (visualizers.size() != 0);
326  }
327 
329  virtual void setIconScale(float);
330  template <typename T> void setIconScale(makVrv::DtVisualizerSet* s, float scale)
331  {
332  std::vector<T> visualizers;
333  s->findVisualizersByDynamicCast(visualizers);
334  typename std::vector<T>::iterator i = visualizers.begin();
335  typename std::vector<T>::iterator e = visualizers.end();
336  for(;i != e; ++i)
337  {
338  if (*i)
339  {
340  (*i)->setIconScale(scale);
341  }
342  }
343  }
344 
345  virtual void setExtendedData(const std::map<std::string, std::string>&);
346  virtual std::map<std::string, std::string> extendedData() const;
347 
348  virtual void destroySchema(const makVrv::DtVisualizerSchema&);
349 
351  virtual void setEntityExtents(const DtVector& volume, const DtVector& offset);
352 
354  virtual bool hasBoundingVolumes() const;
355 
357  virtual void setEntityExtentsVisible(bool, int modelSet = -1);
358  template <typename T> void setEntityExtentsVisible(makVrv::DtVisualizerSet* s, bool b, int modelSet = -1)
359  {
360  std::vector<T> visualizers;
361  s->findVisualizersByDynamicCast(visualizers);
362  typename std::vector<T>::iterator i = visualizers.begin();
363  typename std::vector<T>::iterator e = visualizers.end();
364  for(;i != e; ++i)
365  {
366  if (*i)
367  {
368  if ((modelSet == -1) || (modelSet == ((MyStateVisualizer*)(*i))->modelSet()))
369  {
370  (*i)->setVisible(b);
371  }
372  }
373  }
374  }
375 
376  template <typename T> void setScale(makVrv::DtVisualizerSet* s, float scale)
377  {
378  std::vector<T> visualizers;
379  s->findVisualizersByDynamicCast(visualizers);
380  typename std::vector<T>::iterator i = visualizers.begin();
381  typename std::vector<T>::iterator e = visualizers.end();
382  for(;i != e; ++i)
383  {
384  if (*i)
385  {
386  (*i)->setScale(scale);
387  }
388  }
389  }
390 
391  template <typename T> void setForceColor(makVrv::DtVisualizerSet* s, makVrv::DtForceManager::RGBAColor color)
392  {
393  std::vector<T> visualizers;
394  s->findVisualizersByDynamicCast(visualizers);
395  typename std::vector<T>::iterator i = visualizers.begin();
396  typename std::vector<T>::iterator e = visualizers.end();
397  for(;i != e; ++i)
398  {
399  if (*i)
400  {
401  (*i)->setForceColor(color.R, color.G, color.B, color.A);
402  }
403  }
404  }
405 
406  template <typename T> void setColor(makVrv::DtVisualizerSet* s, makVrv::DtForceManager::RGBAColor color)
407  {
408  std::vector<T> visualizers;
409  s->findVisualizersByDynamicCast(visualizers);
410  typename std::vector<T>::iterator i = visualizers.begin();
411  typename std::vector<T>::iterator e = visualizers.end();
412  for(;i != e; ++i)
413  {
414  if (*i)
415  {
416  (*i)->setColor(color.R, color.G, color.B, color.A);
417  }
418  }
419  }
420 
421  void setBoundingExtentColor(float r, float g, float b, float a);
422 
424  virtual std::string diGuyCharacter() const;
425 
427  virtual std::string diGuyAppearance() const;
428 
430  virtual std::string diGuyHandItem() const;
432  virtual std::string diGuyHead() const;
433 
435  virtual void setAppearance(int);
436  virtual DtAppearance appearance() const;
437 
438  virtual void setLifeFormState(unsigned int, bool paused = false);
439  virtual void setCharacterWeaponAiming(bool aiming);
440  virtual void setEnableAnimationSmoothing(bool);
441  virtual void setCharacterAction(const std::string& animation, bool paused = false);
442  virtual const std::string& characterAction() const;
443 
444  virtual void setCharacterModel(const std::string& animation);
445  virtual std::string characterModel() const;
446 
447  virtual void setCharacterBodyWeight(double);
448  virtual void setCharacterAlive(bool);
449 
450  virtual void setCharacterAppearance(const std::string& animation);
451  virtual void setCharacterHandItem(const std::string& item);
452  virtual void setCharacterHead(const std::string& head);
453 
455  virtual void setDisplayName( const std::string& displayName );
456 
458  virtual void setSymbolNameVisible(bool);
459 
461  virtual void setStatePropertyDecorationsVisible(bool);
462 
463  virtual void setSymbolDecorationsVisible(bool);
464 
465  virtual bool isAggregate() const
466  {
467  return myIsAggregate;
468  }
469 
471  virtual void updateSymbolRotation(const DtTaitBryan&);
472 
474  virtual void updateSymbolRotation(double);
475 
477  virtual void setRotateToHeading(bool);
478  bool rotateToHeading() const
479  {
480  return myRotateToHeading;
481  }
482 
483  virtual void slot_visualizerCreationDisabled( int modelSet, int visualType );
484  virtual void slot_visualizerCreationEnabled( int modelSet, int visualType );
485 
486  boost::signal<void (DtEntityFacadeCollection*)> signal_orientationChanged;
487 
488  protected:
491 
494 
499 
500  std::string myOverlay;
507 
508  std::string myDiGuyAppearance;
509  std::string myDiGuyHandItem;
510  std::string myDiGuyHead;
511  std::string myCharacterAction;
512  std::string myCharacterModel;
515 
516  bool myIsDiGuy;
530 
531  typedef std::map<int, std::map<int, int> > ActivatedStates;
533 
535 
537 
539 
540  std::map<std::string, std::string> myMarkingDecals;
541  std::map<int, std::map<int, bool> > myEffectsShown;
542  };
543 
545  {
546  public:
549 
551  static DtEntityFacadeCollectionCreator& instance(makVrv::DtDe& de);
552  static void registerInstance(makVrv::DtDe&, DtEntityFacadeCollectionCreator*);
553 
554  virtual DtEntityFacadeCollection* create(int modelSet = -1);
555 
556  protected:
558  };
559 }
560 

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)