VR-Forces 4.10 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:
60  : makVrv::DtAggregateStateListener(id, settingsManager)
63  };
64 
66  {
67  public:
68  typedef std::map<int, makVrv::DtVisualizerSet*> ModelSetMap;
69 
70  public:
71  DtEntityFacadeCollection(makVrv::DtDe&, int modelSet = -1);
72  virtual ~DtEntityFacadeCollection();
73 
74  public:
76 
78  virtual void visualize(const makVrv::DtUnicode& type,
80 
81  const ModelSetMap& modelSetMap() const
82  {
83  return myModelSetMap;
84  }
85 
87  {
88  return myModelSetMap;
89  }
90 
91  virtual bool isVisualized() const;
92 
94  virtual void setupNodeMaskFlags() const;
95 
97  virtual void setSetupNodeMaskFlags(bool);
98 
102  virtual std::map<int, std::vector<int> > modelStates(int modelSet) const;
103 
106  virtual std::vector<int> artParts(int modelSet) const;
107 
109  virtual void enableArtPart(int modelSet, int artPart, bool enable, const DtVector& translationRate = DtVector::zero(),
110  const DtVector& rotationalRate = DtVector::zero());
111 
112  virtual void enableArtPartTranslation(int modelSet, int artPart, bool enable,
113  const DtVector& translationRate = DtVector::zero(), const DtVector& minTranslation = DtVector::zero(),
114  const DtVector& maxTranslation = DtVector::zero());
115 
116  virtual void enableArtPartRotation(int modelSet, int artPart, bool enable,
117  const DtVector& rotationRate = DtVector::zero(), const DtVector& minRotation = DtVector::zero(),
118  const DtVector& maxRotation = DtVector::zero());
119 
121  virtual void getArtPartInformation(int modelSet, int artPart, DtVector& minRotation, DtVector& maxRotation, DtVector& minTranslation, DtVector& maxTranslation);
122 
125  virtual void setModelState(int modelSet, int, int);
126 
128  virtual void setTopographicOrientation(const DtTaitBryan& orientation);
129 
130  virtual void setTopographicOffsetFromPrincipal(const DtVector&, bool resetLocation = true);
131 
133  virtual void setLocalOrientation(const DtTaitBryan& orientation);
134 
136  virtual void setOrigin(const DtVector& v);
137  virtual void setOrigin(const DtGeodeticCoord& v);
138 
140  virtual void setOriginAndSeaLevel(const DtVector& v);
141  virtual void setOriginAndSeaLevel(const DtGeodeticCoord& v);
142 
143  virtual void ignoreVisualTypeSwitch(int, bool);
144 
145  virtual bool hasOccupant() const;
146 
147  virtual void setDropShadow(bool b);
148  virtual void setAltitudeOffsetFromPrincipal( double offset, bool resetLocation = true );
149 
151  virtual void setForceType(DtForceType);
152  DtForceType forceType() const;
153  virtual bool hasForceChange() const;
154 
156  virtual double initialAltitudeAboveTerrain() const;
157 
158  virtual makVrv::DtBaseConnection& baseConnection() const;
159 
161  void setHatLineVisible( bool visible );
162 
164  void setTrackHistoryVisible( bool visible );
165 
167  virtual void setVisible(bool b, bool updateOffsets = true);
168  virtual void setVisible(bool, int context);
169  virtual bool isVisible() const;
170 
172  virtual void setUseHighestTerrainLod(bool);
173 
175  virtual void setPickable(bool b);
176 
178  virtual void setSelected(bool b);
179 
181  virtual void setLabel(const std::string& label);
182  virtual std::string label() const;
183  virtual bool hasLabelChange() const;
184 
186  virtual void setExtendedLabels(const std::map<int, DtString>& labels);
187  virtual std::map<int, DtString> extendedLabels() const;
188  virtual bool hasExtendedLabelsChange() const;
189 
191  virtual void setOverlayName(const std::string&);
192  virtual std::string overlayName() const;
193 
195  virtual void setIndicatorVisible(bool b);
196 
198  virtual Dt3dBoundingVolume boundingVolume(int modelSet = 0) const;
199 
201  virtual void calculateSupportPoints(int modelSet, DtVector& left, DtVector& right, DtVector& other) const;
202 
204  virtual void setAttachedTo(DtVrfObjectFacadeInterface*, const DtVector& offset, const DtTaitBryan&);
205  virtual void detach();
206 
207  virtual void setUniqueID(makVrv::DtUniqueID);
208  virtual makVrv::DtUniqueID uniqueID() const;
209  virtual std::vector<makVrv::DtUniqueID> modelUniqueIDs() const;
210 
211  virtual void clearMarkingsModified();
212  virtual bool markingsModified() const;
213 
215  virtual void setMarkingDecal(const std::string& annotation, const std::string& value);
216  virtual std::string markingDecal(const std::string& annotation) const;
217  const std::map<std::string, std::string>& markingDecalMap() const
218  {
219  return myMarkingDecals;
220  }
221 
222  virtual void clearMarkingDecals();
223 
225  virtual bool hasMultipleLODs(int modelSet = 0) const;
226 
228  virtual void setWidgetEventsEnabled(bool b);
229 
231  virtual void setGroundClamping(bool b);
232  virtual void setDeadReckoning(bool position, bool velocity, bool orientation);
233 
235  virtual void setSymbolDecorationOffset(double x, double y);
236 
238  virtual void setAutoEnableGroundClamping(bool b);
239 
241  virtual void realizeFacades();
242 
245  virtual void unrealizeFacades(bool willRecreate = false);
246 
249  virtual void setDictionaryToDisplay(int);
250  bool dictionaryToDisplay() const { return myDictionaryToDisplay; };
251 
254  virtual bool hasProjectedModel(int modelSet) const;
255 
259  virtual void setElementDefinition(const makVrv::DtUnicode& elementName);
260 
262  virtual const makVrv::DtUnicode& elementDefinition() const;
263 
266  virtual void setElementDefinition(const DtEntityType&);
267 
269  void setSmoothingEnabled(bool enabled);
270 
272  void setMotionModel(const std::string&);
273 
275  virtual void setLabelIndicatorVisible(bool);
276 
278  virtual void setHeadingIndicatorVisible(bool);
279 
281  virtual void setHeadingIndicatorSize(float l);
282 
284  virtual bool isDiGuy() const { return myIsDiGuy; };
285 
287  virtual DtVector position() const;
288 
289  virtual makVrv::DtUniqueID uniqueIDForModelSet(int set) const;
290 
292  virtual void setEffectsVisible(bool);
293 
295  virtual bool shouldEnableTrailEffects() const;
296 
298  virtual void enableTrailEffect(bool);
299 
302  virtual void setAltitudeAboveTerrain(double d);
303 
306  virtual void setAltitudeAboveSeaLevel(double d);
307 
309  virtual bool hasWakeModel(int set);
310  virtual void setWakeLOD(double);
311  virtual void setShowWakes(bool b, int modelSet = -1);
312 
313  virtual void setShowSmoke(bool b, int modelSet = -1);
314  virtual void setShowFlames(bool b, int modelSet = -1);
315 
316  virtual void setShowOccupants(bool b);
317 
318  virtual const DtVector32& velocity() const;
319  virtual void setVelocity(const DtVector32& v);
320 
322  template <typename T> void visualizers(int modelSet, std::vector<T>& visualizers) const
323  {
324  if (myModelSetMap.find(modelSet) == myModelSetMap.end())
325  {
326  return;
327  }
328 
329  myModelSetMap.find(modelSet)->second->findVisualizersByDynamicCast(visualizers);
330  }
331 
333  template <typename T> bool hasVisualizer(makVrv::DtVisualizerSet* s) const
334  {
335  if (!s)
336  {
337  return false;
338  }
339 
340  std::vector<T> visualizers;
341  s->findVisualizersByDynamicCast(visualizers);
342 
343  return (visualizers.size() != 0);
344  }
345 
347  virtual void setIconScale(float);
348  template <typename T> void setIconScale(makVrv::DtVisualizerSet* s, float scale)
349  {
350  std::vector<T> visualizers;
351  s->findVisualizersByDynamicCast(visualizers);
352  typename std::vector<T>::iterator i = visualizers.begin();
353  typename std::vector<T>::iterator e = visualizers.end();
354  for(;i != e; ++i)
355  {
356  if (*i)
357  {
358  (*i)->setIconScale(scale);
359  }
360  }
361  }
362 
363  virtual void setExtendedData(const std::map<std::string, std::string>&);
364  virtual std::map<std::string, std::string> extendedData() const;
365 
366  virtual void destroySchema(const makVrv::DtVisualizerSchema&);
367 
369  virtual void setEntityExtents(const DtVector& volume, const DtVector& offset);
370 
372  virtual bool hasBoundingVolumes() const;
373 
375  virtual void setEntityExtentsVisible(bool, int modelSet = -1);
376  template <typename T> void setEntityExtentsVisible(makVrv::DtVisualizerSet* s, bool b, int modelSet = -1)
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  if ((modelSet == -1) || (modelSet == ((MyStateVisualizer*)(*i))->modelSet()))
387  {
388  (*i)->setVisible(b);
389  }
390  }
391  }
392  }
393 
394  template <typename T> void setScale(makVrv::DtVisualizerSet* s, float scale)
395  {
396  std::vector<T> visualizers;
397  s->findVisualizersByDynamicCast(visualizers);
398  typename std::vector<T>::iterator i = visualizers.begin();
399  typename std::vector<T>::iterator e = visualizers.end();
400  for(;i != e; ++i)
401  {
402  if (*i)
403  {
404  (*i)->setScale(scale);
405  }
406  }
407  }
408 
410  {
411  std::vector<T> visualizers;
412  s->findVisualizersByDynamicCast(visualizers);
413  typename std::vector<T>::iterator i = visualizers.begin();
414  typename std::vector<T>::iterator e = visualizers.end();
415  for(;i != e; ++i)
416  {
417  if (*i)
418  {
419  (*i)->setForceColor(color.R, color.G, color.B, color.A);
420  }
421  }
422  }
423 
424  template <typename T> void setForceType(makVrv::DtVisualizerSet* s, DtForceType type)
425  {
426  std::vector<T> visualizers;
427  s->findVisualizersByDynamicCast(visualizers);
428  typename std::vector<T>::iterator i = visualizers.begin();
429  typename std::vector<T>::iterator e = visualizers.end();
430  for(;i != e; ++i)
431  {
432  if (*i)
433  {
434  (*i)->setForceId(type);
435  }
436  }
437  }
438 
440  {
441  std::vector<T> visualizers;
442  s->findVisualizersByDynamicCast(visualizers);
443  typename std::vector<T>::iterator i = visualizers.begin();
444  typename std::vector<T>::iterator e = visualizers.end();
445  for(;i != e; ++i)
446  {
447  if (*i)
448  {
449  (*i)->setColor(color.R, color.G, color.B, color.A);
450  }
451  }
452  }
453 
454  virtual void setForceColor(const DtRwColor&);
455  void setBoundingExtentColor(float r, float g, float b, float a);
456 
458  virtual std::string diGuyCharacter() const;
459 
461  virtual std::string diGuyAppearance() const;
462 
464  virtual std::string diGuyHandItem() const;
466  virtual std::string diGuyHead() const;
467 
469  virtual void setAppearance(int);
470  virtual DtAppearance appearance() const;
471 
472  virtual void setLifeFormState(unsigned int, bool paused = false);
473  virtual void setCharacterWeaponAiming(bool aiming);
474  virtual void setEnableAnimationSmoothing(bool);
475  virtual void setCharacterAction(const std::string& animation, bool paused = false);
476  virtual const std::string& characterAction() const;
477 
478  virtual void setCharacterModel(const std::string& animation);
479  virtual std::string characterModel() const;
480 
481  virtual void setCharacterBodyWeight(double);
482  virtual void setCharacterAlive(bool);
483 
484  virtual void setCharacterAppearance(const std::string& animation);
485  virtual void setCharacterHandItem(const std::string& item);
486  virtual void setCharacterHead(const std::string& head);
487 
489  virtual void setDisplayName( const std::string& displayName );
490 
492  virtual void setSymbolNameVisible(bool);
493 
495  virtual void setStatePropertyDecorationsVisible(bool);
496 
497  virtual void setSymbolDecorationsVisible(bool);
498 
499  virtual bool isAggregate() const
500  {
501  return myIsAggregate;
502  }
503 
505  virtual void finalizeSetup();
506 
508  virtual void updateSymbolRotation(const DtTaitBryan&);
509 
511  virtual void updateSymbolRotation(double);
512 
514  virtual void setRotateToHeading(bool);
515  bool rotateToHeading() const
516  {
517  return myRotateToHeading;
518  }
519 
520  virtual void slot_visualizerCreationDisabled( int modelSet, int visualType );
521  virtual void slot_visualizerCreationEnabled( int modelSet, int visualType );
522 
523  boost::signals2::signal<void (DtEntityFacadeCollection*)> signal_orientationChanged;
524 
525  protected:
528 
531 
536 
537  std::string myOverlay;
542  DtForceType myForceType;
544 
545  std::string myDiGuyAppearance;
546  std::string myDiGuyHandItem;
547  std::string myDiGuyHead;
548  std::string myCharacterAction;
549  std::string myCharacterModel;
552 
553  bool myIsDiGuy;
568 
569  typedef std::map<int, std::map<int, int> > ActivatedStates;
571 
573 
575 
577  boost::signals2::connection myFinalizeConnection;
578 
579  std::map<std::string, std::string> myMarkingDecals;
580  std::map<int, std::map<int, bool> > myEffectsShown;
581 
583  };
584 
586  {
587  public:
590 
592  static DtEntityFacadeCollectionCreator& instance(makVrv::DtDe& de);
593  static void registerInstance(makVrv::DtDe&, DtEntityFacadeCollectionCreator*);
594 
595  virtual DtEntityFacadeCollection* create(int modelSet = -1);
596 
597  protected:
599  };
600 }
601 
std::string myOverlay
Definition: entityFacadeCollection.h:537
Contains makVrv:DtAggregateStateListener class.
const std::map< std::string, std::string > & markingDecalMap() const
Definition: entityFacadeCollection.h:217
DtExtAggregateStateListener myListener
Aggregate is also an entity state listener, so, it can be used.
Definition: entityFacadeCollection.h:534
std::string myDiGuyHead
Definition: entityFacadeCollection.h:547
ActivatedStates myActivatedStates
Definition: entityFacadeCollection.h:570
Virtual base class.
Definition: DtVirtualBaseClass.h:19
A unicode string.
Definition: DtUnicode.h:33
Definition: entityFacadeCollection.h:56
std::string myDiGuyHandItem
Definition: entityFacadeCollection.h:546
int myModelSet
Definition: DtStateVisualizer.h:277
bool myEnableAnimationSmoothing
Definition: entityFacadeCollection.h:559
bool myEntityExtentsVisible
Definition: entityFacadeCollection.h:564
ModelSetMap & modelSetMap()
Definition: entityFacadeCollection.h:86
const ModelSetMap & modelSetMap() const
Definition: entityFacadeCollection.h:81
Definition: DtForceManager.h:46
void setForceColor(makVrv::DtVisualizerSet *s, makVrv::DtForceManager::RGBAColor color)
Definition: entityFacadeCollection.h:409
double myDiGuyBodyWeight
Definition: entityFacadeCollection.h:550
std::string myDiGuyAppearance
Definition: entityFacadeCollection.h:545
The DtAggregateStateListener is an abstract class.
Definition: DtAggregateStateListener.h:25
ModelSetMap myModelSetMap
Definition: entityFacadeCollection.h:535
bool myForceChanged
Definition: entityFacadeCollection.h:541
std::map< int, std::map< int, bool > > myEffectsShown
Definition: entityFacadeCollection.h:580
int myAttributeCompareValue
Definition: entityFacadeCollection.h:566
void setScale(makVrv::DtVisualizerSet *s, float scale)
Definition: entityFacadeCollection.h:394
void setIconScale(makVrv::DtVisualizerSet *s, float scale)
Definition: entityFacadeCollection.h:348
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:42
bool rotateToHeading() const
Definition: entityFacadeCollection.h:515
bool myHasExtendedLabelsChange
Definition: entityFacadeCollection.h:540
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
bool myUseHighestTerrainLOD
Definition: entityFacadeCollection.h:560
bool myHatLinesVisible
Definition: entityFacadeCollection.h:558
bool myTrackHistoryVisible
Definition: entityFacadeCollection.h:562
bool mySetupNodeMaskFlags
Definition: entityFacadeCollection.h:529
bool myHasLabelChange
Definition: entityFacadeCollection.h:539
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:34
boost::signals2::connection myFinalizeConnection
Definition: entityFacadeCollection.h:577
DtForceType myForceType
Definition: entityFacadeCollection.h:542
int myDictionaryToDisplay
Definition: entityFacadeCollection.h:565
Reader-Writer color specified by red, green, blue components.
Definition: rwColor.h:19
Definition: entityStateListenerExtensions.h:75
Contains makVrv::DtSharedModelSetSettings class.
std::map< int, makVrv::DtVisualizerSet * > ModelSetMap
Definition: entityFacadeCollection.h:68
void setColor(makVrv::DtVisualizerSet *s, makVrv::DtForceManager::RGBAColor color)
Definition: entityFacadeCollection.h:439
std::string myCharacterModel
Definition: entityFacadeCollection.h:549
std::map< std::string, std::string > myMarkingDecals
Definition: entityFacadeCollection.h:579
MyStateVisualizer(makVrv::DtBaseConnection &connection, makVrv::DtStateListener &listener, int modelSet)
Definition: entityFacadeCollection.h:50
Definition: vrfObjectFacadeInterface.h:47
std::string myCharacterAction
Definition: entityFacadeCollection.h:548
float B
Definition: DtForceManager.h:58
bool myNeedsRealization
Definition: entityFacadeCollection.h:556
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
void setForceType(makVrv::DtVisualizerSet *s, DtForceType type)
Definition: entityFacadeCollection.h:424
Definition: entityFacadeCollection.h:47
bool myShowOccupants
Definition: entityFacadeCollection.h:554
float R
Definition: DtForceManager.h:58
virtual ~DtExtAggregateStateListener()
Definition: entityFacadeCollection.h:62
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
bool dictionaryToDisplay() const
Definition: entityFacadeCollection.h:250
int myAppearance
Definition: entityFacadeCollection.h:543
This contains all the DtVisualizers used to visualize an element in a particular model set...
Definition: DtVisualizerSet.h:31
Definition: entityFacadeCollection.h:65
Contains makVrv:DtBaseConnection class.
Contains makVrv::DtForceManager class.
The DtStateVisualizer is an abstract class.
Definition: DtStateVisualizer.h:32
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:259
bool hasVisualizer(makVrv::DtVisualizerSet *s) const
Returns true if has the visualizer.
Definition: entityFacadeCollection.h:333
bool myIsDiGuy
Definition: entityFacadeCollection.h:553
bool mySymbolNameVisible
Definition: entityFacadeCollection.h:563
bool myOriginSet
Definition: entityFacadeCollection.h:555
float G
Definition: DtForceManager.h:58
float A
Definition: DtForceManager.h:58
Definition: entityFacadeCollection.h:585
makVrv::DtBaseConnection * myConnection
Definition: entityFacadeCollection.h:530
boost::signals2::signal< void(DtEntityFacadeCollection *)> signal_orientationChanged
Definition: entityFacadeCollection.h:523
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
DtExtAggregateStateListener(makVrv::DtUniqueID id, makVrv::DtSharedSettingsManager &settingsManager)
Definition: entityFacadeCollection.h:59
DtBoundingVolumeSupportPointCalculator * myBVSPCalculator
Definition: entityFacadeCollection.h:572
bool myHeadingIndicatorVisible
Definition: entityFacadeCollection.h:561
bool myIsAggregate
Definition: entityFacadeCollection.h:538
std::map< int, std::map< int, int > > ActivatedStates
Definition: entityFacadeCollection.h:569
virtual bool isDiGuy() const
Returns true if is a DI-Guy model.
Definition: entityFacadeCollection.h:284
voidpf uLong offset
Definition: ioapi.h:42
int modelSet() const
Definition: entityFacadeCollection.h:53
DtStateVisualizer()=delete
Default constructor.
The DtStateListener is an abstract class.
Definition: DtStateListener.h:21
virtual bool isAggregate() const
Definition: entityFacadeCollection.h:499
Definition: DtVisualizerSchema.h:19
std::set< int > myIgnoreVisualTypeSwitch
Definition: entityFacadeCollection.h:582
makVrv::DtSignalConnectionManager myConnections
Definition: entityFacadeCollection.h:576
bool myIndicatorVisible
Definition: entityFacadeCollection.h:557
makVrv::DtUnicode myElementDefinition
Facades by model set.
Definition: entityFacadeCollection.h:527
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:322
DtStateListener & listener()
Definition: DtStateVisualizer.h:171
makVrv::DtDe & myDe
Definition: entityFacadeCollection.h:598
bool myRotateToHeading
Definition: entityFacadeCollection.h:574
void setEntityExtentsVisible(makVrv::DtVisualizerSet *s, bool b, int modelSet=-1)
Definition: entityFacadeCollection.h:376
bool myCharacterPaused
Definition: entityFacadeCollection.h:551
std::map< int, bool > ModelSetVisualizedMap
Definition: DtSharedModelSetSettings.h:27
bool myMarkingsModified
Definition: entityFacadeCollection.h:567

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)