VR-Forces 5.0.2 Developer's Guide
 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) 2021 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrfGuiCore/vrfGuiCore.h>
15 
20 #include <vrvUtil/DtUnicode.h>
21 #include <vrvCore/DtForceManager.h>
23 
24 #include <matrix/vlVector.h>
25 #include <matrix/vlTaitBryan.h>
26 
27 #include <string>
28 #include <map>
29 
30 class DtEntityType;
31 class DtRwColor;
32 
33 namespace makVrv
34 {
35 
36  class DtVisualDefinitionSet;
37  class DtAgentManagerInterface;
38  class DtDe;
39  class DtStatePropertyDecorationVisualizer;
40  class DtBaseConnection;
41  class DtEntityElement;
42 }
43 
44 namespace makVrf
45 {
46 
47  class DtBoundingVolumeSupportPointCalculator;
48 
50  {
51  public:
54 
55  void setIsAggregate(bool b);
56  virtual void setAggregateColorizedModelColorType(makVrv::DtColorizedModelColorType colorType) override;
57  virtual void updateForceColor() override;
58 
59  protected:
61  };
62 
68  {
69  public:
70  typedef std::map<int, makVrv::DtVisualizerSet*> ModelSetMap;
71 
72  public:
73  DtEntityFacadeCollection(makVrv::DtDe&, int modelSet = -1);
74  virtual ~DtEntityFacadeCollection();
75 
76  public:
78 
80  virtual void visualize( const makVrv::DtUnicode& type,
82 
84  {
85  return myEntityElement;
86  }
87 
89  {
90  return myListener;
91  }
92 
93  virtual bool isVisualized() const;
94 
96  virtual void setupNodeMaskFlags() const;
97 
99  virtual void setSetupNodeMaskFlags(bool);
100 
104  virtual std::map<int, std::vector<int> > modelStates(int modelSet) const;
105 
108  virtual std::vector<int> artParts(int modelSet) const;
109 
111  virtual void enableArtPart(int modelSet, int artPart, bool enable, const DtVector& translationRate = DtVector::zero(),
112  const DtVector& rotationalRate = DtVector::zero());
113 
114  virtual void enableArtPartTranslation(int modelSet, int artPart, bool enable,
115  const DtVector& translationRate = DtVector::zero(), const DtVector& minTranslation = DtVector::zero(),
116  const DtVector& maxTranslation = DtVector::zero());
117 
118  virtual void enableArtPartRotation(int modelSet, int artPart, bool enable,
119  const DtVector& rotationRate = DtVector::zero(), const DtVector& minRotation = DtVector::zero(),
120  const DtVector& maxRotation = DtVector::zero());
121 
123  virtual void getArtPartInformation(int modelSet, int artPart, DtVector& minRotation, DtVector& maxRotation, DtVector& minTranslation, DtVector& maxTranslation);
124 
127  virtual void setModelState(int modelSet, int, int);
128 
130  virtual void setTopographicOrientation(const DtTaitBryan& orientation);
131 
132  virtual void setTopographicOffsetFromPrincipal(const DtVector&, bool resetLocation = true);
133 
135  virtual void setLocalOrientation(const DtTaitBryan& orientation);
136 
138  virtual void setOrigin(const DtVector& v);
139  virtual void setOrigin(const DtGeodeticCoord& v);
140 
142  virtual void setOriginAndSeaLevel(const DtVector& v);
143  virtual void setOriginAndSeaLevel(const DtGeodeticCoord& v);
144 
145  virtual void ignoreVisualTypeSwitch(int, bool);
146 
147  virtual bool hasOccupant() const;
148 
149  virtual void setDropShadow(bool b);
150  virtual void setAltitudeOffsetFromPrincipal( double offset, bool resetLocation = true );
151 
153  virtual void setForceType(DtForceType);
154  DtForceType forceType() const;
155  virtual bool hasForceChange() const;
156 
158  virtual double initialAltitudeAboveTerrain() const;
159 
160  virtual makVrv::DtBaseConnection& baseConnection() const;
161 
163  void setHatLineVisible( bool visible );
164 
166  void setTrackHistoryVisible( bool visible );
167 
169  virtual void setVisible(bool, makVrv::DtShowHideContext::ShowHideContext context, bool updateOffsets = true) override;
170  virtual bool isVisible() const override;
171 
173  virtual void setUseHighestTerrainLod(bool);
174 
176  virtual void setPickable(bool b);
177 
179  virtual void setSelected(bool b);
180 
182  virtual void setLabel(const std::string& label);
183  virtual std::string label() const;
184  virtual bool hasLabelChange() const;
185 
187  virtual void setupVisualMetaDataFor(bool skipVariants = false);
188 
190  virtual void setExtendedLabels(const std::map<int, DtString>& labels);
191  virtual std::map<int, DtString> extendedLabels() const;
192  virtual bool hasExtendedLabelsChange() const;
193 
195  virtual void setOverlayName(const std::string&);
196  virtual std::string overlayName() const;
197 
199  virtual void setIndicatorVisible(bool b);
200 
202  virtual Dt3dBoundingVolume boundingVolume(int modelSet = 0) const;
203 
205  virtual void calculateSupportPoints(int modelSet, DtVector& left, DtVector& right, DtVector& other) const;
206 
208  virtual void setAttachedTo(DtVrfObjectFacadeInterface*, const DtVector& offset, const DtTaitBryan&);
209  virtual void detach();
210 
211  virtual makVrv::DtUniqueID uniqueID() const;
212  virtual std::vector<makVrv::DtUniqueID> modelUniqueIDs() const;
213 
214  virtual void clearMarkingsModified();
215  virtual bool markingsModified() const;
216 
218  virtual void setMarkingDecal(const std::string& annotation, const std::string& value);
219  virtual std::string markingDecal(const std::string& annotation) const;
220  const std::map<std::string, std::string>& markingDecalMap() const
221  {
222  return myMarkingDecals;
223  }
224 
225  virtual void clearMarkingDecals();
226 
228  virtual bool hasMultipleLODs(int modelSet = 0) const;
229 
231  virtual void setWidgetEventsEnabled(bool b);
232 
234  virtual void setGroundClamping(bool b);
235  virtual void setDeadReckoning(bool position, bool velocity, bool orientation);
236 
238  virtual void setSymbolDecorationOffset(double x, double y);
239 
241  virtual void setFixedIconScalingEnabled(bool);
242 
244  virtual void realizeFacades();
245 
248  virtual void unrealizeFacades(bool willRecreate = false);
249 
252  virtual void setDictionaryToDisplay(int);
253  bool dictionaryToDisplay() const { return myDictionaryToDisplay; };
254 
257  virtual bool hasProjectedModel(int modelSet) const;
258 
262  virtual void setElementDefinition(const makVrv::DtUnicode& elementName);
263 
265  virtual const makVrv::DtUnicode& elementDefinition() const;
266 
269  virtual void setElementDefinition(const DtEntityType&);
270 
272  void setSmoothingEnabled(bool enabled);
273 
275  void setMotionModel(const std::string&);
276 
278  virtual void setLabelIndicatorVisible(bool);
279 
281  virtual void setHeadingIndicatorVisible(bool);
282 
284  virtual void setHeadingIndicatorSize(float l);
285 
287  virtual bool isDiGuy() const { return myIsDiGuy; };
288 
290  virtual DtVector position() const;
291 
292  virtual makVrv::DtUniqueID uniqueIDForModelSet(int set) const;
293 
295  virtual void setEffectsVisible(bool);
296 
298  virtual bool shouldEnableTrailEffects() const;
299 
301  virtual void enableTrailEffect(bool);
302 
305  virtual void setAltitudeAboveTerrain(double d);
306 
309  virtual void setAltitudeAboveSeaLevel(double d);
310 
312  virtual bool hasWakeModel(int set);
313  virtual void setWakeLOD(double);
314  virtual void setShowWakes(bool b, int modelSet = -1);
315 
316  virtual void setShowSmoke(bool b, int modelSet = -1);
317  virtual void setShowFlames(bool b, int modelSet = -1);
318 
319  virtual void setShowOccupants(bool b);
320 
321  virtual const DtVector32& velocity() const;
322  virtual void setVelocity(const DtVector32& v);
323 
325  template <typename T> bool hasVisualizer() const
326  {
327  std::vector<T> vis;
328  return visualizers(vis);
329  }
330 
331  template <typename T> bool visualizers(std::vector<T>& vis) const
332  {
333  if (!myEntityElement)
334  {
335  return false;
336  }
337  myEntityElement->findVisualizersByDynamicCast(vis);
338  return (!vis.empty());
339  }
340 
342  virtual void setIconScale(float);
343  template <typename T> void setIconScale(float scale)
344  {
345  std::vector<T> visualizers;
346  myEntityElement->findVisualizersByDynamicCast(visualizers);
347  typename std::vector<T>::iterator i = visualizers.begin();
348  typename std::vector<T>::iterator e = visualizers.end();
349  for(;i != e; ++i)
350  {
351  if (*i)
352  {
353  (*i)->setIconScale(scale);
354  }
355  }
356  }
357 
358  virtual void setExtendedData(const std::map<std::string, std::string>&);
359  virtual std::map<std::string, std::string> extendedData() const;
360 
362  virtual void setEntityExtents(const DtVector& volume, const DtVector& offset);
363 
365  virtual bool hasBoundingVolumes() const;
366 
368  virtual void setEntityExtentsVisible(bool, int modelSet = -1);
369  template <typename T> void setEntityExtentsVisible(bool b, int modelSet = -1)
370  {
371  std::vector<T> visualizers;
372  myEntityElement->findVisualizersByDynamicCast(visualizers);
373  typename std::vector<T>::iterator i = visualizers.begin();
374  typename std::vector<T>::iterator e = visualizers.end();
375  for(;i != e; ++i)
376  {
377  if (*i)
378  {
379  if ((modelSet == -1) || (modelSet == (*i)->modelSet()))
380  {
381  (*i)->setShowExtentsEnabled(b);
382  }
383  }
384  }
385  }
386 
387  template <typename T> void setScale(float scale)
388  {
389  std::vector<T> visualizers;
390  myEntityElement->findVisualizersByDynamicCast(visualizers);
391  typename std::vector<T>::iterator i = visualizers.begin();
392  typename std::vector<T>::iterator e = visualizers.end();
393  for(;i != e; ++i)
394  {
395  if (*i)
396  {
397  (*i)->setScale(scale);
398  }
399  }
400  }
401 
402  template <typename T> void setColor( makVrv::DtForceManager::RGBAColor color)
403  {
404  std::vector<T> visualizers;
405  myEntityElement->findVisualizersByDynamicCast(visualizers);
406  typename std::vector<T>::iterator i = visualizers.begin();
407  typename std::vector<T>::iterator e = visualizers.end();
408  for(;i != e; ++i)
409  {
410  if (*i)
411  {
412  (*i)->setColor(color.R, color.G, color.B, color.A);
413  }
414  }
415  }
416 
417  virtual void setForceColor(const DtRwColor&);
418  void setBoundingExtentColor(float r, float g, float b, float a);
419 
421  virtual std::string diGuyCharacter() const;
422 
424  virtual std::string diGuyAppearance() const;
425 
427  virtual std::string diGuyHandItem() const;
429  virtual std::string diGuyHead() const;
430 
432  virtual void setAppearance(int);
433  virtual DtAppearance appearance() const;
434 
435  virtual void setLifeFormState(unsigned int, bool paused = false);
436  virtual void setCharacterWeaponAiming(bool aiming);
437  virtual void setEnableAnimationSmoothing(bool);
438  virtual void setCharacterAction(const std::string& animation, bool paused = false);
439  virtual const std::string& characterAction() const;
440 
441  virtual void setCharacterModel(const std::string& animation);
442  virtual std::string characterModel() const;
443 
444  virtual void setCharacterBodyWeight(double);
445  virtual void setCharacterAlive(bool);
446 
447  virtual void setCharacterAppearance(const std::string& animation);
448  virtual void setCharacterHandItem(const std::string& item);
449  virtual void setCharacterHead(const std::string& head);
450 
451  virtual void setCharacterPrimaryUnit( const DtPatchIdentifier& patchId );
452  virtual void setCharacterSecondaryUnit( const DtPatchIdentifier& patchId );
453  virtual void setCharacterRank( const DtPatchIdentifier& patchId );
454  virtual void setCharacterName( const DtString& patchId );
455 
456  virtual void setDecorationEnabled(const std::string& decorationId, bool);
457 
459  virtual void setDisplayName( const std::string& displayName );
460 
462  virtual void setSymbolNameVisible(bool);
463 
465  virtual void setStatePropertyDecorationsVisible(bool);
466 
467  virtual void setSymbolDecorationsVisible(bool);
468 
469  virtual bool isAggregate() const
470  {
471  return myIsAggregate;
472  }
473 
475  virtual void finalizeSetup();
476 
478  virtual void updateSymbolRotation(const DtTaitBryan&);
479 
481  virtual void updateSymbolRotation(double);
482 
484  virtual void setRotateToHeading(bool);
485  bool rotateToHeading() const
486  {
487  return myRotateToHeading;
488  }
489 
490  virtual void slot_visualizerCreationDisabled( int modelSet, int visualType );
491  virtual void slot_visualizerCreationEnabled( int modelSet, int visualType );
492 
493  boost::signals2::signal<void (DtEntityFacadeCollection*)> signal_orientationChanged;
494 
495  boost::signals2::signal<void (std::string, std::string)> signal_markingDecalSet;
496 
500  boost::signals2::signal<void ()> signal_startOfMarkingDecalSet;
501  boost::signals2::signal<void ()> signal_endOfMarkingDecalSet;
502 
503  protected:
506 
509 
514 
515  std::string myOverlay;
520  DtForceType myForceType;
522 
523  std::string myDiGuyAppearance;
524  std::string myDiGuyHandItem;
525  std::string myDiGuyHead;
526  DtPatchIdentifier myDiGuyPrimaryUnitPatch;
527  DtPatchIdentifier myDiGuySecondaryUnitPatch;
528  DtPatchIdentifier myDiGuyRankPatch;
529  std::string myDiGuyCharacterName;
530  std::string myCharacterAction;
531  std::string myCharacterModel;
534 
535  bool myIsDiGuy;
549 
550  typedef std::map<int, std::map<int, int> > ActivatedStates;
552 
554 
556 
558  boost::signals2::connection myFinalizeConnection;
559 
560  std::map<std::string, std::string> myMarkingDecals;
561  std::map<int, std::map<int, bool> > myEffectsShown;
562 
564  };
565 
567  {
568  public:
571 
573  static DtEntityFacadeCollectionCreator& instance(makVrv::DtDe& de);
574  static void registerInstance(makVrv::DtDe&, DtEntityFacadeCollectionCreator*);
575 
576  virtual DtEntityFacadeCollection* create(int modelSet = -1);
577 
578  protected:
580  };
581 }
582 
std::string myOverlay
Definition: entityFacadeCollection.h:515
Contains makVrv:DtAggregateStateListener class.
boost::signals2::signal< void(std::string, std::string)> signal_markingDecalSet
Definition: entityFacadeCollection.h:495
const std::map< std::string, std::string > & markingDecalMap() const
Definition: entityFacadeCollection.h:220
std::string myDiGuyHead
Definition: entityFacadeCollection.h:525
ActivatedStates myActivatedStates
Definition: entityFacadeCollection.h:551
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
Definition: entityFacadeCollection.h:49
std::string myDiGuyHandItem
Definition: entityFacadeCollection.h:524
bool myEnableAnimationSmoothing
Definition: entityFacadeCollection.h:540
bool myEntityExtentsVisible
Definition: entityFacadeCollection.h:545
Contains makVrv::DtEntityElement class.
Definition: DtForceManager.h:44
double myDiGuyBodyWeight
Definition: entityFacadeCollection.h:532
std::string myDiGuyAppearance
Definition: entityFacadeCollection.h:523
The DtAggregateStateListener extends DtEntityStateListener. It provides a interface to all the visual...
Definition: DtAggregateStateListener.h:33
ShowHideContext
Definition: DtShowHideContext.h:18
bool myForceChanged
Definition: entityFacadeCollection.h:519
DtPatchIdentifier myDiGuyPrimaryUnitPatch
Definition: entityFacadeCollection.h:526
std::map< int, std::map< int, bool > > myEffectsShown
Definition: entityFacadeCollection.h:561
int myAttributeCompareValue
Definition: entityFacadeCollection.h:547
DtColorizedModelColorType
Enumeration for the model coloring mode.
Definition: DtSharedEntityDisplaySettings.h:34
void setEntityExtentsVisible(bool b, int modelSet=-1)
Definition: entityFacadeCollection.h:369
bool rotateToHeading() const
Definition: entityFacadeCollection.h:485
bool myHasExtendedLabelsChange
Definition: entityFacadeCollection.h:518
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
bool myUseHighestTerrainLOD
Definition: entityFacadeCollection.h:541
bool myHatLinesVisible
Definition: entityFacadeCollection.h:539
bool myTrackHistoryVisible
Definition: entityFacadeCollection.h:543
DtPatchIdentifier myDiGuySecondaryUnitPatch
Definition: entityFacadeCollection.h:527
DtExtAggregateStateListener * listener()
Definition: entityFacadeCollection.h:88
bool mySetupNodeMaskFlags
Definition: entityFacadeCollection.h:507
bool myHasLabelChange
Definition: entityFacadeCollection.h:517
makVrv::DtEntityElement * entityElement()
Definition: entityFacadeCollection.h:83
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:38
DtExtAggregateStateListener * myListener
Aggregate is also an entity state listener, so, it can be used.
Definition: entityFacadeCollection.h:512
boost::signals2::connection myFinalizeConnection
Definition: entityFacadeCollection.h:558
DtForceType myForceType
Definition: entityFacadeCollection.h:520
int myDictionaryToDisplay
Definition: entityFacadeCollection.h:546
Reader-Writer color specified by red, green, blue components.
Definition: rwColor.h:19
Definition: entityStateListenerExtensions.h:81
Contains makVrv::DtSharedModelSetSettings class.
std::map< int, makVrv::DtVisualizerSet * > ModelSetMap
Definition: entityFacadeCollection.h:70
std::string myCharacterModel
Definition: entityFacadeCollection.h:531
std::map< std::string, std::string > myMarkingDecals
Definition: entityFacadeCollection.h:560
Definition: vrfObjectFacadeInterface.h:53
std::string myCharacterAction
Definition: entityFacadeCollection.h:530
float B
Definition: DtForceManager.h:56
bool myNeedsRealization
Definition: entityFacadeCollection.h:537
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
std::string myDiGuyCharacterName
Definition: entityFacadeCollection.h:529
bool visualizers(std::vector< T > &vis) const
Definition: entityFacadeCollection.h:331
bool hasVisualizer() const
Returns true if has the visualizer.
Definition: entityFacadeCollection.h:325
bool myIsAggregate
Definition: entityFacadeCollection.h:60
float R
Definition: DtForceManager.h:56
virtual ~DtExtAggregateStateListener()
Definition: entityFacadeCollection.h:53
void setScale(float scale)
Definition: entityFacadeCollection.h:387
bool dictionaryToDisplay() const
Definition: entityFacadeCollection.h:253
A single entity element. An entity element may be visualized using multiple visualizer sets one per m...
Definition: DtEntityElement.h:32
int myAppearance
Definition: entityFacadeCollection.h:521
Will create entity facades for each realized model set and manage them all.
Definition: entityFacadeCollection.h:67
Contains makVrv:DtBaseConnection class.
Contains makVrv::DtForceManager class.
makVrv::DtEntityElement * myEntityElement
Definition: entityFacadeCollection.h:513
boost::signals2::signal< void()> signal_startOfMarkingDecalSet
These signals are needed because of variants/subvariants and not knowing in which order they are bein...
Definition: entityFacadeCollection.h:500
bool myIsDiGuy
Definition: entityFacadeCollection.h:535
bool mySymbolNameVisible
Definition: entityFacadeCollection.h:544
bool myOriginSet
Definition: entityFacadeCollection.h:536
float G
Definition: DtForceManager.h:56
float A
Definition: DtForceManager.h:56
void setColor(makVrv::DtForceManager::RGBAColor color)
Definition: entityFacadeCollection.h:402
Definition: entityFacadeCollection.h:566
makVrv::DtBaseConnection * myConnection
Definition: entityFacadeCollection.h:508
boost::signals2::signal< void(DtEntityFacadeCollection *)> signal_orientationChanged
Definition: entityFacadeCollection.h:493
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
DtBoundingVolumeSupportPointCalculator * myBVSPCalculator
Definition: entityFacadeCollection.h:553
bool myHeadingIndicatorVisible
Definition: entityFacadeCollection.h:542
bool myIsAggregate
Definition: entityFacadeCollection.h:516
std::map< int, std::map< int, int > > ActivatedStates
Definition: entityFacadeCollection.h:550
virtual bool isDiGuy() const
Returns true if is a DI-Guy model.
Definition: entityFacadeCollection.h:287
voidpf uLong offset
Definition: ioapi.h:42
virtual bool isAggregate() const
Definition: entityFacadeCollection.h:469
DtPatchIdentifier myDiGuyRankPatch
Definition: entityFacadeCollection.h:528
boost::signals2::signal< void()> signal_endOfMarkingDecalSet
Definition: entityFacadeCollection.h:501
std::set< int > myIgnoreVisualTypeSwitch
Definition: entityFacadeCollection.h:563
makVrv::DtSignalConnectionManager myConnections
Definition: entityFacadeCollection.h:557
bool myIndicatorVisible
Definition: entityFacadeCollection.h:538
makVrv::DtUnicode myElementDefinition
Facades by model set.
Definition: entityFacadeCollection.h:505
Given a scene object, this class will iterate over the models, looking for an articulated model or di...
Definition: boundingVolumeSupportPointCalculator.h:41
makVrv::DtDe & myDe
Definition: entityFacadeCollection.h:579
void setIconScale(float scale)
Definition: entityFacadeCollection.h:343
bool myRotateToHeading
Definition: entityFacadeCollection.h:555
bool myCharacterPaused
Definition: entityFacadeCollection.h:533
std::map< int, bool > ModelSetVisualizedMap
Definition: DtSharedModelSetSettings.h:27
bool myMarkingsModified
Definition: entityFacadeCollection.h:548

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)