VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtAttachableEntityFanUpdater.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 <vrvCore/vrvCore.h>
14 #include <vrvCore/DtIntersector.h>
16 
17 #include <boost/unordered_map.hpp>
18 
19 namespace makVrv
20 {
21 
22  class DtElementEntry;
23  class DtOverlayEllipseArcModelAgent;
24  class DtExtrudedEllipseModelAgent;
25  class DtMultiLineModelAgent;
26  class DtSceneObjectAgent;
27 
38  {
39  public:
40 
46  DtDe& de, DtElementID id );
47 
50 
51  virtual void setEntityFanUpdateRate( double d );
52 
54  virtual void setEllipseAgent( DtOverlayEllipseArcModelAgent* );
55  virtual void setEllipseAgent( DtExtrudedEllipseModelAgent* );
56 
59  virtual void setMultiLineModelAgent( DtMultiLineModelAgent* );
60 
62  virtual void setSceneObjectAgent( DtSceneObjectAgent* );
63  virtual void setMultilineSceneObjectAgent( DtSceneObjectAgent* );
64 
65  protected:
66 
67  virtual void updateSceneObject( DtTime tNow );
68  virtual bool doIntersection(const DtTime tNow);
69 
71  virtual void update();
72 
73  virtual void update( DtTime tNow );
74 
77  virtual bool removeElement( DtElementID id );
78 
80  virtual void sceneObjectRemoved( DtUniqueID );
81 
84  virtual bool isIntersectableObject( const DtElementEntry& ) const;
85 
86  protected:
87 
89  {
92  // When the class is destructed, the scene object may or may not
93  // exist. Using a separate connection variable makes it possible to
94  // 'disconnect' even if the scene object has been deleted.
95  boost::signalslib::connection sceneObjectConnection;
96  };
97 
99  typedef boost::unordered_map<DtElementID,EntityFanIntersectionInformation> Intersections;
101 
104  double myLastRadius;
105 
106  DtOverlayEllipseArcModelAgent* my2DEllipseAgent;
107  DtExtrudedEllipseModelAgent* my3DEllipseAgent;
108  DtMultiLineModelAgent* myMultiLineModelAgent;
109  DtSceneObjectAgent* mySceneObjectAgent;
110  DtSceneObjectAgent* myMultilineSceneObjectAgent;
112 
113  };
114 
118  : public DtVirtualBaseClass
119  {
120  public:
121 
123 
124  static DtAttachableEntityFanUpdaterCreator& instance(DtDe&);
125  static void registerInstance(
127 
128  virtual DtAttachableEntityFanUpdater* create( DtDe&, DtElementID id );
129 
130  protected:
131 
133 
134  };
135 
136 }
Contains makVrv::DtAttachableIntervisibilityUpdater class.
Virtual base class.
Definition: DtVirtualBaseClass.h:19
DtSceneObjectAgent * mySceneObjectAgent
Definition: DtAttachableEntityFanUpdater.h:109
double myLastRadius
Definition: DtAttachableEntityFanUpdater.h:104
DtSceneObjectAgent * myMultilineSceneObjectAgent
Definition: DtAttachableEntityFanUpdater.h:110
double myEntityFanUpdateRate
Definition: DtAttachableEntityFanUpdater.h:102
DtExtrudedEllipseModelAgent * my3DEllipseAgent
Definition: DtAttachableEntityFanUpdater.h:107
DtOverlayEllipseArcModelAgent * my2DEllipseAgent
Definition: DtAttachableEntityFanUpdater.h:106
boost::unordered_map< DtElementID, EntityFanIntersectionInformation > Intersections
Map type for mapping entity ids to entity fan intersection info.
Definition: DtAttachableEntityFanUpdater.h:99
DtElementEntry holds the non-simulation-specific data about an element, including its element type an...
Definition: DtElementEntry.h:22
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
Contains makVrv::DtVirtualBaseClass class.
bool myForceUpdate
Definition: DtAttachableEntityFanUpdater.h:103
Contains makVrv:DtIntersector, makVrv:DtIntersectorLineSegment, and makVrv:DtIntersectorResult classe...
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Creator for entity fan updater.
Definition: DtAttachableEntityFanUpdater.h:117
Intersections myIntersections
Definition: DtAttachableEntityFanUpdater.h:100
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtSignalConnectionManager mySignalConnectionManager
Definition: DtAttachableEntityFanUpdater.h:111
bool sceneObjectVisible
Definition: DtAttachableEntityFanUpdater.h:91
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:41
DtMultiLineModelAgent * myMultiLineModelAgent
Definition: DtAttachableEntityFanUpdater.h:108
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Class which will keep track of EntityFan los object (spokes between an origin and the outer rim of th...
Definition: DtAttachableEntityFanUpdater.h:36
Class which will keep track of Intervisibility between an origin and an end point.
Definition: DtAttachableIntervisibilityUpdater.h:22
boost::signalslib::connection sceneObjectConnection
Definition: DtAttachableEntityFanUpdater.h:95
DtSceneObject * sceneObject
Definition: DtAttachableEntityFanUpdater.h:90
Definition: DtAttachableIntervisibilityUpdater.h:70
Contains DLL export macros.

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)