VR-Forces 4.8 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 class DtRwColor;
33 
34 namespace makVrv
35 {
36  class DtVisualDefinitionSet;
37  class DtAgentManagerInterface;
38  class DtDe;
39  class DtStatePropertyDecorationVisualizer;
40  class DtBaseConnection;
41 }
42 
43 namespace makVrf
44 {
45  class DtBoundingVolumeSupportPointCalculator;
46 
48  {
49  public:
51  int modelSet) : makVrv::DtStateVisualizer(connection, listener, modelSet) {};
52 
53  int modelSet() const { return myModelSet; };
54  };
55 
57  {
58  public:
59  DtExtAggregateStateListener(makVrv::DtUniqueID id) : makVrv::DtAggregateStateListener(id), DtEntityStateListenerExtensions(id) {};
61  };
62 
64  {
65  public:
66  typedef std::map<int, makVrv::DtVisualizerSet*> ModelSetMap;
67 
68  public:
69  DtEntityFacadeCollection(makVrv::DtDe&, int modelSet = -1);
70  virtual ~DtEntityFacadeCollection();
71 
72  public:
74 
76  virtual void visualize(const makVrv::DtUnicode& type,
78 
79  const ModelSetMap& modelSetMap() const
80  {
81  return myModelSetMap;
82  }
83 
85  {
86  return myModelSetMap;
87  }
88 
89  virtual bool isVisualized() const;
90 
92  virtual void setupNodeMaskFlags() const;
93 
95  virtual void setSetupNodeMaskFlags(bool);
96 
100  virtual std::map<int, std::vector<int> > modelStates(int modelSet) const;
101 
104  virtual std::vector<int> artParts(int modelSet) const;
105 
107  virtual void enableArtPart(int modelSet, int artPart, bool enable, const DtVector& translationRate = DtVector::zero(),
108  const DtVector& rotationalRate = DtVector::zero());
109 
110  virtual void enableArtPartTranslation(int modelSet, int artPart, bool enable,
111  const DtVector& translationRate = DtVector::zero(), const DtVector& minTranslation = DtVector::zero(),
112  const DtVector& maxTranslation = DtVector::zero());
113 
114  virtual void enableArtPartRotation(int modelSet, int artPart, bool enable,
115  const DtVector& rotationRate = DtVector::zero(), const DtVector& minRotation = DtVector::zero(),
116  const DtVector& maxRotation = DtVector::zero());
117 
119  virtual void getArtPartInformation(int modelSet, int artPart, DtVector& minRotation, DtVector& maxRotation, DtVector& minTranslation, DtVector& maxTranslation);
120 
123  virtual void setModelState(int modelSet, int, int);
124 
126  virtual void setTopographicOrientation(const DtTaitBryan& orientation);
127 
128  virtual void setTopographicOffsetFromPrincipal(const DtVector&, bool resetLocation = true);
129 
131  virtual void setLocalOrientation(const DtTaitBryan& orientation);
132 
134  virtual void setOrigin(const DtVector& v);
135  virtual void setOrigin(const DtGeodeticCoord& v);
136 
138  virtual void setOriginAndSeaLevel(const DtVector& v);
139  virtual void setOriginAndSeaLevel(const DtGeodeticCoord& v);
140 
141  virtual void ignoreVisualTypeSwitch(int, bool);
142 
143  virtual bool hasOccupant() const;
144 
145  virtual void setDropShadow(bool b);
146  virtual void setAltitudeOffsetFromPrincipal( double offset, bool resetLocation = true );
147 
149  virtual void setForceId(int);
150  int forceId() const;
151  virtual bool hasForceChange() const;
152 
154  virtual double initialAltitudeAboveTerrain() const;
155 
156  virtual makVrv::DtBaseConnection& baseConnection() const;
157 
159  void setHatLineVisible( bool visible );
160 
162  void setTrackHistoryVisible( bool visible );
163 
165  virtual void setVisible(bool b, bool updateOffsets = true);
166  virtual void setVisible(bool, int context);
167  virtual bool isVisible() const;
168 
170  virtual void setUseHighestTerrainLod(bool);
171 
173  virtual void setPickable(bool b);
174 
176  virtual void setSelected(bool b);
177 
179  virtual void setLabel(const std::string& label);
180  virtual std::string label() const;
181  virtual bool hasLabelChange() const;
182 
184  virtual void setExtendedLabels(const std::map<int, DtString>& labels);
185  virtual std::map<int, DtString> extendedLabels() const;
186  virtual bool hasExtendedLabelsChange() const;
187 
189  virtual void setOverlayName(const std::string&);
190  virtual std::string overlayName() const;
191 
193  virtual void setIndicatorVisible(bool b);
194 
196  virtual Dt3dBoundingVolume boundingVolume(int modelSet = 0) const;
197 
199  virtual void calculateSupportPoints(int modelSet, DtVector& left, DtVector& right, DtVector& other) const;
200 
202  virtual void setAttachedTo(DtVrfObjectFacadeInterface*, const DtVector& offset, const DtTaitBryan&);
203  virtual void detach();
204 
205  virtual void setUniqueID(makVrv::DtUniqueID);
206  virtual makVrv::DtUniqueID uniqueID() const;
207  virtual std::vector<makVrv::DtUniqueID> modelUniqueIDs() const;
208 
209  virtual void clearMarkingsModified();
210  virtual bool markingsModified() const;
211 
213  virtual void setMarkingDecal(const std::string& annotation, const std::string& value);
214  virtual std::string markingDecal(const std::string& annotation) const;
215  const std::map<std::string, std::string>& markingDecalMap() const
216  {
217  return myMarkingDecals;
218  }
219 
220  virtual void clearMarkingDecals();
221 
223  virtual bool hasMultipleLODs(int modelSet = 0) const;
224 
226  virtual void setWidgetEventsEnabled(bool b);
227 
229  virtual void setGroundClamping(bool b);
230  virtual void setDeadReckoning(bool position, bool velocity, bool orientation);
231 
233  virtual void setSymbolDecorationOffset(double x, double y);
234 
236  virtual void setAutoEnableGroundClamping(bool b);
237 
239  virtual void realizeFacades();
240 
243  virtual void unrealizeFacades(bool willRecreate = false);
244 
247  virtual void setDictionaryToDisplay(int);
248  bool dictionaryToDisplay() const { return myDictionaryToDisplay; };
249 
252  virtual bool hasProjectedModel(int modelSet) const;
253 
257  virtual void setElementDefinition(const makVrv::DtUnicode& elementName);
258 
260  virtual const makVrv::DtUnicode& elementDefinition() const;
261 
264  virtual void setElementDefinition(const DtEntityType&);
265 
267  void setSmoothingEnabled(bool enabled);
268 
270  void setMotionModel(const std::string&);
271 
273  virtual void setLabelIndicatorVisible(bool);
274 
276  virtual void setHeadingIndicatorVisible(bool);
277 
279  virtual void setHeadingIndicatorSize(float l);
280 
282  virtual bool isDiGuy() const { return myIsDiGuy; };
283 
285  virtual DtVector position() const;
286 
287  virtual makVrv::DtUniqueID uniqueIDForModelSet(int set) const;
288 
290  virtual void setEffectsVisible(bool);
291 
293  virtual bool shouldEnableTrailEffects() const;
294 
296  virtual void enableTrailEffect(bool);
297 
300  virtual void setAltitudeAboveTerrain(double d);
301 
304  virtual void setAltitudeAboveSeaLevel(double d);
305 
307  virtual bool hasWakeModel(int set);
308  virtual void setWakeLOD(double);
309  virtual void setShowWakes(bool b, int modelSet = -1);
310 
311  virtual void setShowSmoke(bool b, int modelSet = -1);
312  virtual void setShowFlames(bool b, int modelSet = -1);
313 
314  virtual void setShowOccupants(bool b);
315 
316  virtual const DtVector32& velocity() const;
317  virtual void setVelocity(const DtVector32& v);
318 
320  template <typename T> void visualizers(int modelSet, std::vector<T>& visualizers) const
321  {
322  if (myModelSetMap.find(modelSet) == myModelSetMap.end())
323  {
324  return;
325  }
326 
327  myModelSetMap.find(modelSet)->second->findVisualizersByDynamicCast(visualizers);
328  }
329 
331  template <typename T> bool hasVisualizer(makVrv::DtVisualizerSet* s) const
332  {
333  if (!s)
334  {
335  return false;
336  }
337 
338  std::vector<T> visualizers;
339  s->findVisualizersByDynamicCast(visualizers);
340 
341  return (visualizers.size() != 0);
342  }
343 
345  virtual void setIconScale(float);
346  template <typename T> void setIconScale(makVrv::DtVisualizerSet* s, float scale)
347  {
348  std::vector<T> visualizers;
349  s->findVisualizersByDynamicCast(visualizers);
350  typename std::vector<T>::iterator i = visualizers.begin();
351  typename std::vector<T>::iterator e = visualizers.end();
352  for(;i != e; ++i)
353  {
354  if (*i)
355  {
356  (*i)->setIconScale(scale);
357  }
358  }
359  }
360 
361  virtual void setExtendedData(const std::map<std::string, std::string>&);
362  virtual std::map<std::string, std::string> extendedData() const;
363 
364  virtual void destroySchema(const makVrv::DtVisualizerSchema&);
365 
367  virtual void setEntityExtents(const DtVector& volume, const DtVector& offset);
368 
370  virtual bool hasBoundingVolumes() const;
371 
373  virtual void setEntityExtentsVisible(bool, int modelSet = -1);
374  template <typename T> void setEntityExtentsVisible(makVrv::DtVisualizerSet* s, bool b, int modelSet = -1)
375  {
376  std::vector<T> visualizers;
377  s->findVisualizersByDynamicCast(visualizers);
378  typename std::vector<T>::iterator i = visualizers.begin();
379  typename std::vector<T>::iterator e = visualizers.end();
380  for(;i != e; ++i)
381  {
382  if (*i)
383  {
384  if ((modelSet == -1) || (modelSet == ((MyStateVisualizer*)(*i))->modelSet()))
385  {
386  (*i)->setVisible(b);
387  }
388  }
389  }
390  }
391 
392  template <typename T> void setScale(makVrv::DtVisualizerSet* s, float scale)
393  {
394  std::vector<T> visualizers;
395  s->findVisualizersByDynamicCast(visualizers);
396  typename std::vector<T>::iterator i = visualizers.begin();
397  typename std::vector<T>::iterator e = visualizers.end();
398  for(;i != e; ++i)
399  {
400  if (*i)
401  {
402  (*i)->setScale(scale);
403  }
404  }
405  }
406 
408  {
409  std::vector<T> visualizers;
410  s->findVisualizersByDynamicCast(visualizers);
411  typename std::vector<T>::iterator i = visualizers.begin();
412  typename std::vector<T>::iterator e = visualizers.end();
413  for(;i != e; ++i)
414  {
415  if (*i)
416  {
417  (*i)->setForceColor(color.R, color.G, color.B, color.A);
418  }
419  }
420  }
421 
423  {
424  std::vector<T> visualizers;
425  s->findVisualizersByDynamicCast(visualizers);
426  typename std::vector<T>::iterator i = visualizers.begin();
427  typename std::vector<T>::iterator e = visualizers.end();
428  for(;i != e; ++i)
429  {
430  if (*i)
431  {
432  (*i)->setColor(color.R, color.G, color.B, color.A);
433  }
434  }
435  }
436 
437  virtual void setForceColor(const DtRwColor&);
438  void setBoundingExtentColor(float r, float g, float b, float a);
439 
441  virtual std::string diGuyCharacter() const;
442 
444  virtual std::string diGuyAppearance() const;
445 
447  virtual std::string diGuyHandItem() const;
449  virtual std::string diGuyHead() const;
450 
452  virtual void setAppearance(int);
453  virtual DtAppearance appearance() const;
454 
455  virtual void setLifeFormState(unsigned int, bool paused = false);
456  virtual void setCharacterWeaponAiming(bool aiming);
457  virtual void setEnableAnimationSmoothing(bool);
458  virtual void setCharacterAction(const std::string& animation, bool paused = false);
459  virtual const std::string& characterAction() const;
460 
461  virtual void setCharacterModel(const std::string& animation);
462  virtual std::string characterModel() const;
463 
464  virtual void setCharacterBodyWeight(double);
465  virtual void setCharacterAlive(bool);
466 
467  virtual void setCharacterAppearance(const std::string& animation);
468  virtual void setCharacterHandItem(const std::string& item);
469  virtual void setCharacterHead(const std::string& head);
470 
472  virtual void setDisplayName( const std::string& displayName );
473 
475  virtual void setSymbolNameVisible(bool);
476 
478  virtual void setStatePropertyDecorationsVisible(bool);
479 
480  virtual void setSymbolDecorationsVisible(bool);
481 
482  virtual bool isAggregate() const
483  {
484  return myIsAggregate;
485  }
486 
488  virtual void finalizeSetup();
489 
491  virtual void updateSymbolRotation(const DtTaitBryan&);
492 
494  virtual void updateSymbolRotation(double);
495 
497  virtual void setRotateToHeading(bool);
498  bool rotateToHeading() const
499  {
500  return myRotateToHeading;
501  }
502 
503  virtual void slot_visualizerCreationDisabled( int modelSet, int visualType );
504  virtual void slot_visualizerCreationEnabled( int modelSet, int visualType );
505 
506  boost::signals2::signal<void (DtEntityFacadeCollection*)> signal_orientationChanged;
507 
508  protected:
511 
514 
519 
520  std::string myOverlay;
527 
528  std::string myDiGuyAppearance;
529  std::string myDiGuyHandItem;
530  std::string myDiGuyHead;
531  std::string myCharacterAction;
532  std::string myCharacterModel;
535 
536  bool myIsDiGuy;
551 
552  typedef std::map<int, std::map<int, int> > ActivatedStates;
554 
556 
558 
560  boost::signalslib::connection myFinalizeConnection;
561 
562  std::map<std::string, std::string> myMarkingDecals;
563  std::map<int, std::map<int, bool> > myEffectsShown;
564 
566  };
567 
569  {
570  public:
573 
575  static DtEntityFacadeCollectionCreator& instance(makVrv::DtDe& de);
576  static void registerInstance(makVrv::DtDe&, DtEntityFacadeCollectionCreator*);
577 
578  virtual DtEntityFacadeCollection* create(int modelSet = -1);
579 
580  protected:
582  };
583 }
584 
std::string myOverlay
Definition: entityFacadeCollection.h:520
Contains makVrv:DtAggregateStateListener class.
const std::map< std::string, std::string > & markingDecalMap() const
Definition: entityFacadeCollection.h:215
DtExtAggregateStateListener myListener
Aggregate is also an entity state listener, so, it can be used.
Definition: entityFacadeCollection.h:517
std::string myDiGuyHead
Definition: entityFacadeCollection.h:530
ActivatedStates myActivatedStates
Definition: entityFacadeCollection.h:553
Virtual base class.
Definition: DtVirtualBaseClass.h:22
A unicode string.
Definition: DtUnicode.h:33
Definition: entityFacadeCollection.h:56
std::string myDiGuyHandItem
Definition: entityFacadeCollection.h:529
int myModelSet
Definition: DtStateVisualizer.h:265
bool myEnableAnimationSmoothing
Definition: entityFacadeCollection.h:542
bool myEntityExtentsVisible
Definition: entityFacadeCollection.h:547
ModelSetMap & modelSetMap()
Definition: entityFacadeCollection.h:84
const ModelSetMap & modelSetMap() const
Definition: entityFacadeCollection.h:79
Definition: DtForceManager.h:46
void setForceColor(makVrv::DtVisualizerSet *s, makVrv::DtForceManager::RGBAColor color)
Definition: entityFacadeCollection.h:407
double myDiGuyBodyWeight
Definition: entityFacadeCollection.h:533
std::string myDiGuyAppearance
Definition: entityFacadeCollection.h:528
The DtAggregateStateListener is an abstract class.
Definition: DtAggregateStateListener.h:26
ModelSetMap myModelSetMap
Definition: entityFacadeCollection.h:518
bool myForceChanged
Definition: entityFacadeCollection.h:524
std::map< int, std::map< int, bool > > myEffectsShown
Definition: entityFacadeCollection.h:563
int myAttributeCompareValue
Definition: entityFacadeCollection.h:549
void setScale(makVrv::DtVisualizerSet *s, float scale)
Definition: entityFacadeCollection.h:392
void setIconScale(makVrv::DtVisualizerSet *s, float scale)
Definition: entityFacadeCollection.h:346
bool rotateToHeading() const
Definition: entityFacadeCollection.h:498
bool myHasExtendedLabelsChange
Definition: entityFacadeCollection.h:523
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
bool myUseHighestTerrainLOD
Definition: entityFacadeCollection.h:543
bool myHatLinesVisible
Definition: entityFacadeCollection.h:541
bool myTrackHistoryVisible
Definition: entityFacadeCollection.h:545
bool mySetupNodeMaskFlags
Definition: entityFacadeCollection.h:512
bool myHasLabelChange
Definition: entityFacadeCollection.h:522
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:37
DtExtAggregateStateListener(makVrv::DtUniqueID id)
Definition: entityFacadeCollection.h:59
int myDictionaryToDisplay
Definition: entityFacadeCollection.h:548
Reader-Writer color specified by red, green, blue components.
Definition: rwColor.h:19
Definition: entityStateListenerExtensions.h:71
Contains makVrv::DtSharedModelSetSettings class.
std::map< int, makVrv::DtVisualizerSet * > ModelSetMap
Definition: entityFacadeCollection.h:66
void setColor(makVrv::DtVisualizerSet *s, makVrv::DtForceManager::RGBAColor color)
Definition: entityFacadeCollection.h:422
std::string myCharacterModel
Definition: entityFacadeCollection.h:532
std::map< std::string, std::string > myMarkingDecals
Definition: entityFacadeCollection.h:562
MyStateVisualizer(makVrv::DtBaseConnection &connection, makVrv::DtStateListener &listener, int modelSet)
Definition: entityFacadeCollection.h:50
Definition: vrfObjectFacadeInterface.h:47
std::string myCharacterAction
Definition: entityFacadeCollection.h:531
DtStateVisualizer()
Default constructor.
float B
Definition: DtForceManager.h:58
bool myNeedsRealization
Definition: entityFacadeCollection.h:539
int myForceId
Definition: entityFacadeCollection.h:525
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
Definition: entityFacadeCollection.h:47
bool myShowOccupants
Definition: entityFacadeCollection.h:537
float R
Definition: DtForceManager.h:58
virtual ~DtExtAggregateStateListener()
Definition: entityFacadeCollection.h:60
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
bool dictionaryToDisplay() const
Definition: entityFacadeCollection.h:248
int myAppearance
Definition: entityFacadeCollection.h:526
This contains all the DtVisualizers used to visualize an element in a particular model set...
Definition: DtVisualizerSet.h:30
Definition: entityFacadeCollection.h:63
Contains makVrv:DtBaseConnection class.
Contains makVrv::DtForceManager class.
boost::signalslib::connection myFinalizeConnection
Definition: entityFacadeCollection.h:560
The DtStateVisualizer is an abstract class.
Definition: DtStateVisualizer.h:30
void findVisualizersByDynamicCast(std::vector< VisualizerClass * > &visualizers)
Find all instance of a visualizer by dynamically casting to the class type rather than doing the fast...
Definition: DtVisualizerSet.h:249
bool hasVisualizer(makVrv::DtVisualizerSet *s) const
Returns true if has the visualizer.
Definition: entityFacadeCollection.h:331
bool myIsDiGuy
Definition: entityFacadeCollection.h:536
bool mySymbolNameVisible
Definition: entityFacadeCollection.h:546
bool myOriginSet
Definition: entityFacadeCollection.h:538
float G
Definition: DtForceManager.h:58
float A
Definition: DtForceManager.h:58
Definition: entityFacadeCollection.h:568
makVrv::DtBaseConnection * myConnection
Definition: entityFacadeCollection.h:513
boost::signals2::signal< void(DtEntityFacadeCollection *)> signal_orientationChanged
Definition: entityFacadeCollection.h:506
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtBoundingVolumeSupportPointCalculator * myBVSPCalculator
Definition: entityFacadeCollection.h:555
bool myHeadingIndicatorVisible
Definition: entityFacadeCollection.h:544
bool myIsAggregate
Definition: entityFacadeCollection.h:521
std::map< int, std::map< int, int > > ActivatedStates
Definition: entityFacadeCollection.h:552
virtual bool isDiGuy() const
Returns true if is a DI-Guy model.
Definition: entityFacadeCollection.h:282
voidpf uLong offset
Definition: ioapi.h:42
int modelSet() const
Definition: entityFacadeCollection.h:53
The DtStateListener is an abstract class.
Definition: DtStateListener.h:21
virtual bool isAggregate() const
Definition: entityFacadeCollection.h:482
Definition: DtVisualizerSchema.h:22
std::set< int > myIgnoreVisualTypeSwitch
Definition: entityFacadeCollection.h:565
makVrv::DtSignalConnectionManager myConnections
Definition: entityFacadeCollection.h:559
bool myIndicatorVisible
Definition: entityFacadeCollection.h:540
makVrv::DtUnicode myElementDefinition
Facades by model set.
Definition: entityFacadeCollection.h:510
Given a scene object, this class will iterate over the models, looking for an articulated model or di...
Definition: boundingVolumeSupportPointCalculator.h:41
void visualizers(int modelSet, std::vector< T > &visualizers) const
Returns true if has the visualizer.
Definition: entityFacadeCollection.h:320
DtStateListener & listener()
Definition: DtStateVisualizer.h:159
makVrv::DtDe & myDe
Definition: entityFacadeCollection.h:581
bool myRotateToHeading
Definition: entityFacadeCollection.h:557
void setEntityExtentsVisible(makVrv::DtVisualizerSet *s, bool b, int modelSet=-1)
Definition: entityFacadeCollection.h:374
bool myCharacterPaused
Definition: entityFacadeCollection.h:534
std::map< int, bool > ModelSetVisualizedMap
Definition: DtSharedModelSetSettings.h:30
bool myMarkingsModified
Definition: entityFacadeCollection.h:550

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)