VR-Forces 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) 2023 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 <unordered_map>
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 
34 
37 
39  template <>
40  inline const char* creatorTypeName<DtAttachableEntityFanUpdater>(void) { return "DtAttachableEntityFanUpdaterCreator"; }
41 
52  {
53  public:
54 
60  DtDe& de, DtElementID id );
61 
64 
65  virtual void setEntityFanUpdateRate( double d );
66 
68  virtual void setEllipseAgent( DtOverlayEllipseArcModelAgent* );
69  virtual void setEllipseAgent( DtExtrudedEllipseModelAgent* );
70 
73  virtual void setMultiLineModelAgent( DtMultiLineModelAgent* );
74 
76  virtual void setSceneObjectAgent( DtSceneObjectAgent* );
77  virtual void setMultilineSceneObjectAgent( DtSceneObjectAgent* );
78 
79  protected:
81  virtual void updateSceneObject( DtTime tNow ) override;
82 
84  virtual bool doIntersection(const DtTime tNow) override;
85 
87  virtual void update( DtTime tNow ) override;
88 
90  virtual void update();
91 
94  virtual bool removeElement( DtElementID id );
95 
97  virtual void sceneObjectRemoved( DtUniqueID );
98 
101  virtual bool isIntersectableObject( const DtElementEntry& ) const;
102 
104  virtual void slot_coordinateSystemChanged();
105 
106  protected:
107 
109  {
112  // When the class is destructed, the scene object may or may not
113  // exist. Using a separate connection variable makes it possible to
114  // 'disconnect' even if the scene object has been deleted.
115  boost::signalslib::connection sceneObjectConnection;
116  };
117 
119  typedef std::unordered_map<DtElementID,EntityFanIntersectionInformation> Intersections;
121  bool myIntersectionsChangedViaSignal = false;
122 
124  double myLastRadius;
125 
126  DtOverlayEllipseArcModelAgent* my2DEllipseAgent;
127  DtExtrudedEllipseModelAgent* my3DEllipseAgent;
128  DtMultiLineModelAgent* myMultiLineModelAgent;
129  DtSceneObjectAgent* mySceneObjectAgent;
130  DtSceneObjectAgent* myMultilineSceneObjectAgent;
131 
132  DtCachedIntersectorsContainer* myCachedIntersectorsContainer = nullptr;
133 
136  DtCoordinateSystem* myCoordinateSystem = nullptr;
137 
138  };
139 }
Contains makVrv::DtAttachableIntervisibilityUpdater class.
DtSceneObjectAgent * mySceneObjectAgent
Definition: DtAttachableEntityFanUpdater.h:129
double myLastRadius
Definition: DtAttachableEntityFanUpdater.h:124
DtSceneObjectAgent * myMultilineSceneObjectAgent
Definition: DtAttachableEntityFanUpdater.h:130
double myEntityFanUpdateRate
Definition: DtAttachableEntityFanUpdater.h:123
DtExtrudedEllipseModelAgent * my3DEllipseAgent
Definition: DtAttachableEntityFanUpdater.h:127
DtOverlayEllipseArcModelAgent * my2DEllipseAgent
Definition: DtAttachableEntityFanUpdater.h:126
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
DtVirtualBaseClassCreator< DtAttachableEntityFanUpdater, DtElementID > DtAttachableEntityFanUpdaterCreator
creator
Definition: DtAttachableEntityFanUpdater.h:33
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:23
Contains makVrv:DtIntersector class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Intersections myIntersections
Definition: DtAttachableEntityFanUpdater.h:120
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
The DtCoordinateSystem is used to manage the current coordinate system of the scene.
Definition: DtCoordinateSystem.h:40
const char * creatorTypeName< DtAttachableEntityFanUpdater >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtAttachableEntityFanUpdater.h:40
The DtCachedIntersectorsContainer class contains instances of cached intersectors of different model ...
Definition: DtCachedIntersectorsContainer.h:43
bool sceneObjectVisible
Definition: DtAttachableEntityFanUpdater.h:111
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:44
std::unordered_map< DtElementID, EntityFanIntersectionInformation > Intersections
Map type for mapping entity ids to entity fan intersection info.
Definition: DtAttachableEntityFanUpdater.h:119
DtMultiLineModelAgent * myMultiLineModelAgent
Definition: DtAttachableEntityFanUpdater.h:128
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:76
Class which will keep track of EntityFan los object (spokes between an origin and the outer rim of th...
Definition: DtAttachableEntityFanUpdater.h:50
An updater class used to update the line segments for intervisibility objects, e.g. range lines and intervisibility lines.
Definition: DtAttachableIntervisibilityUpdater.h:28
boost::signalslib::connection sceneObjectConnection
Definition: DtAttachableEntityFanUpdater.h:115
DtSceneObject * sceneObject
Definition: DtAttachableEntityFanUpdater.h:110
Definition: DtAttachableIntervisibilityUpdater.h:87
Contains DLL export macros.

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)