VR-Forces 5.0.3 Developer's Guide
 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) 2022 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
14 #include <vrvCore/DtIntersector.h>
15 
18 
19 #include <boost/unordered_map.hpp>
20 
21 namespace makVrv
22 {
23 
24  class DtElementEntry;
25  class DtOverlayEllipseArcModelAgent;
26  class DtExtrudedEllipseModelAgent;
27  class DtMultiLineModelAgent;
28  class DtSceneObjectAgent;
29  class DtCachedIntersectorsContainer;
30  class DtCoordinateSystem;
31 
42  {
43  public:
44 
50  DtDe& de, DtElementID id );
51 
54 
55  virtual void setEntityFanUpdateRate( double d );
56 
58  virtual void setEllipseAgent( DtOverlayEllipseArcModelAgent* );
59  virtual void setEllipseAgent( DtExtrudedEllipseModelAgent* );
60 
63  virtual void setMultiLineModelAgent( DtMultiLineModelAgent* );
64 
66  virtual void setSceneObjectAgent( DtSceneObjectAgent* );
67  virtual void setMultilineSceneObjectAgent( DtSceneObjectAgent* );
68 
69  protected:
70 
71  virtual void updateSceneObject( DtTime tNow );
72  virtual bool doIntersection(const DtTime tNow);
73 
75  virtual void update();
76 
77  virtual void update( DtTime tNow );
78 
81  virtual bool removeElement( DtElementID id );
82 
84  virtual void sceneObjectRemoved( DtUniqueID );
85 
88  virtual bool isIntersectableObject( const DtElementEntry& ) const;
89 
91  virtual void slot_coordinateSystemChanged();
92 
93  protected:
94 
96  {
99  // When the class is destructed, the scene object may or may not
100  // exist. Using a separate connection variable makes it possible to
101  // 'disconnect' even if the scene object has been deleted.
102  boost::signalslib::connection sceneObjectConnection;
103  };
104 
106  typedef boost::unordered_map<DtElementID,EntityFanIntersectionInformation> Intersections;
108 
111  double myLastRadius;
112 
113  DtOverlayEllipseArcModelAgent* my2DEllipseAgent;
114  DtExtrudedEllipseModelAgent* my3DEllipseAgent;
115  DtMultiLineModelAgent* myMultiLineModelAgent;
116  DtSceneObjectAgent* mySceneObjectAgent;
117  DtSceneObjectAgent* myMultilineSceneObjectAgent;
119 
120  DtCachedIntersectorsContainer* myCachedIntersectorsContainer = nullptr;
121 
122 
125  DtCoordinateSystem* myCoordinateSystem = nullptr;
126  };
127 
131  : public DtVirtualBaseClass
132  {
133  public:
134 
136 
137  static DtAttachableEntityFanUpdaterCreator& instance(DtDe&);
138  static void registerInstance(
140 
141  virtual DtAttachableEntityFanUpdater* create( DtDe&, DtElementID id );
142 
143  protected:
144 
146 
147  };
148 
149 }
Contains makVrv::DtAttachableIntervisibilityUpdater class.
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtSceneObjectAgent * mySceneObjectAgent
Definition: DtAttachableEntityFanUpdater.h:116
double myLastRadius
Definition: DtAttachableEntityFanUpdater.h:111
DtSceneObjectAgent * myMultilineSceneObjectAgent
Definition: DtAttachableEntityFanUpdater.h:117
double myEntityFanUpdateRate
Definition: DtAttachableEntityFanUpdater.h:109
DtExtrudedEllipseModelAgent * my3DEllipseAgent
Definition: DtAttachableEntityFanUpdater.h:114
DtSignalConnectionManager myConnections
Definition: DtAttachableEntityFanUpdater.h:118
DtOverlayEllipseArcModelAgent * my2DEllipseAgent
Definition: DtAttachableEntityFanUpdater.h:113
boost::unordered_map< DtElementID, EntityFanIntersectionInformation > Intersections
Map type for mapping entity ids to entity fan intersection info.
Definition: DtAttachableEntityFanUpdater.h:106
DtElementEntry holds the non-simulation-specific data about an element, including its element type an...
Definition: DtElementEntry.h:22
Contains makVrv::DtVirtualBaseClass class.
bool myForceUpdate
Definition: DtAttachableEntityFanUpdater.h:110
Contains makVrv:DtIntersector class.
#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:130
Intersections myIntersections
Definition: DtAttachableEntityFanUpdater.h:107
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
The DtCachedIntersectorsContainer class contains instances of cached intersectors of different model ...
Definition: DtCachedIntersectorsContainer.h:43
bool sceneObjectVisible
Definition: DtAttachableEntityFanUpdater.h:98
Base class to provide boost signal/slot management.
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:42
DtMultiLineModelAgent * myMultiLineModelAgent
Definition: DtAttachableEntityFanUpdater.h:115
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
Class which will keep track of EntityFan los object (spokes between an origin and the outer rim of th...
Definition: DtAttachableEntityFanUpdater.h:40
Class which will keep track of Intervisibility between an origin and an end point. Will update all scene objects attached to it with the Intervisibility information.
Definition: DtAttachableIntervisibilityUpdater.h:29
boost::signalslib::connection sceneObjectConnection
Definition: DtAttachableEntityFanUpdater.h:102
DtSceneObject * sceneObject
Definition: DtAttachableEntityFanUpdater.h:97
Definition: DtAttachableIntervisibilityUpdater.h:80
Contains DLL export macros.

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)