VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtRotorWashManager.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/DtTickable.h>
13 #include <vrvCore/DtUniqueID.h>
15 
16 namespace makVrv
17 {
18  class DtDe;
19  class DtRotorWashSet;
20  struct DtRotorWashState;
21  class DtDynamicOceanObjectManager;
22 
35  {
36  public:
38  static DtRotorWashManager& instance(DtDe& de);
39 
41  virtual ~DtRotorWashManager();
42 
47  virtual void addRotorWash(DtUniqueID helicopterID, DtUniqueID rotorWashID,
48  const std::string& modelDef);
49 
51  virtual void removeRotorWash(DtUniqueID helicopterID, DtUniqueID rotorWashID);
52 
54  virtual bool hasRotorWash(DtUniqueID helicopterID, DtUniqueID rotorWashID);
55 
57  virtual DtRotorWashSet* getRotorWashSet(DtUniqueID helicopterID);
58 
60  virtual void start(DtUniqueID helicopterID, DtUniqueID rotorWashID);
61 
63  virtual void stop(DtUniqueID helicopterID, DtUniqueID rotorWashID);
64 
68  virtual void setRotorDiameter(DtUniqueID helicopterID,
69  DtUniqueID rotorWashID, double rotorDiameter);
70 
73  virtual void setDefaultRotorDiameter(DtUniqueID helicopterID,
74  DtUniqueID rotorWashID, double rotorDiameter);
75 
78  virtual void setRotorWindSpeed(DtUniqueID helicopterID,
79  DtUniqueID rotorWashID, double rotorWindSpeed);
80 
83  virtual void setDefaultRotorWindSpeed(DtUniqueID helicopterID,
84  DtUniqueID rotorWashID, double rotorWindSpeed);
85 
90  virtual void update( DtTime tNow );
91 
94  virtual DtTime lastUpdateTime() const;
95 
97  virtual int numHelicopters();
98 
100  virtual void helicopterIDs(std::vector<DtUniqueID>& heliIDs);
101 
105  virtual DtRotorWashSet* createRotorWashSet();
106 
107  protected:
108  // So the creator can see the protected constructor
110 
114 
115  private:
121  DtRotorWashManager &operator=(const DtRotorWashManager &);
122 
123  protected:
125  virtual bool lockOceanHeightData(void);
127  virtual bool unlockOceanHeightData(void);
128  protected:
129 
130  typedef std::map<DtUniqueID, DtRotorWashSet* > HeliRotorWashMap;
131 
134 
142 
144  std::vector<std::pair<DtRotorWashSet*, const DtRotorWashState*>> myRotorWashSetScratchPad;
145  };
146 
147 
151  {
152  public:
155 
157  virtual ~DtRotorWashManagerCreator();
158 
162  static DtRotorWashManagerCreator& instance(DtDe& de);
163 
165  virtual DtRotorWashManager* create(DtDe&);
166  };
167 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
std::map< DtUniqueID, DtRotorWashSet * > HeliRotorWashMap
Definition: DtRotorWashManager.h:130
HeliRotorWashMap myHeliToRWMap
Map unique helicopter to multiple model agents Maps like this: DtUniqueID heilID -&gt; DtRotorWashSet -&gt;...
Definition: DtRotorWashManager.h:141
An abstract base class for objects that require updates. This object automatically adds itself to a D...
Definition: DtTickable.h:26
Manager that provides direct access to the dynamic ocean objects in use within a display engine...
Definition: DtDynamicOceanObjectManager.h:27
Holds the set of rotorwash effects for a helicopter. Creates a.
Definition: DtRotorWashSet.h:31
Contains makVrv::DtVirtualBaseClass class.
Creator for DtRotorWashManager class.
Definition: DtRotorWashManager.h:150
DtDynamicOceanObjectManager & myDynamicOceanObjectManager
Definition: DtRotorWashManager.h:143
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
Manager for updating the rotorwashes. DtRotorWashManager is managed by.
Definition: DtRotorWashManager.h:34
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Contains the declaration for makVrv::DtTickable.
Contains makVrv::DtUniqueID type.
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:72
DtDe & myDe
The display engine.
Definition: DtRotorWashManager.h:133
std::vector< std::pair< DtRotorWashSet *, const DtRotorWashState * > > myRotorWashSetScratchPad
Definition: DtRotorWashManager.h:144

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)