VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtRotorWashSet.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/DtUniqueID.h>
15 #include <vlutil/vlTime.h>
16 
17 #include <map>
18 
19 namespace makVrv
20 {
21  class DtRotorWashProcess;
22 
32  {
33  public:
35  DtRotorWashSet(DtDe& de);
36 
38  virtual ~DtRotorWashSet();
39 
41  virtual void addRotorWash(DtUniqueID helicopterId, DtUniqueID rotorWashId,
42  const std::string& modelDef);
43 
45  virtual void removeRotorWash(DtUniqueID rotorWashId);
46 
48  virtual bool hasRotorWash(DtUniqueID rotorWashId);
49 
51  virtual void start(DtUniqueID rotorWashId);
52 
54  virtual void stop(DtUniqueID rotorWashId);
55 
58  virtual void setRotorDiameter(DtUniqueID rotorWashId, double rotorDiameter);
59 
62  virtual void setDefaultRotorDiameter(DtUniqueID rotorWashId, double rotorDiameter);
63 
65  virtual void setRotorWindSpeed(DtUniqueID rotorWashId, double rotorWindSpeed);
66 
69  virtual void setDefaultRotorWindSpeed(DtUniqueID rotorWashId, double rotorWindSpeed);
70 
74  virtual const DtRotorWashState* findActiveRotorWashState();
75 
78  virtual const DtRotorWashState* findRotorWashState(DtUniqueID rotorWashId);
79 
81  virtual void update(DtTime tNow);
82 
84  virtual void updateRotorWashProcess(DtTime tNow, const DtRotorWashState* rwState);
86  virtual void updateRotorWashAgent(const DtRotorWashState* rwState);
88  virtual void zeroOutLocalWindSpeed(void);
90 
93  virtual int numRotorWashes();
94 
96  virtual void getRotorWashIDs(std::vector<DtUniqueID>& rotorWashIds);
97 
100  virtual DtUniqueID helicopterID();
101 
105  virtual DtUniqueID localWindID();
106 
107  protected:
109  virtual void updateAgent(DtRotorWashDistributorAgent* rwAgent);
110 
112  virtual void updateWind();
113 
114  private:
116  DtRotorWashSet();
120  DtRotorWashSet &operator=(const DtRotorWashSet &);
121 
122  protected:
123  // Use the rotorwash ID to get rotorwash data
124  typedef std::map<DtUniqueID, DtRotorWashState> RotorWashIDtoRotorWashStateMap;
125 
127 
128  // Contains the DtRotorWashDistributorAgent + rotorwash info
130 
131  // Only one per helicopter (always?)
133 
134  // Only initialize wind once
135  bool myHasWind;
136 
139 
140  // Which helicopter are we are part of?
142  // What is our wind id (to talk to DtEnvironment, DtLocalWindObjectManager
144  };
145 }
DtRotorWashProcess * myRotorWashProcess
Definition: DtRotorWashSet.h:132
DtUniqueID myHelicopterId
Definition: DtRotorWashSet.h:141
DtRotorWashProcess maintains a model of the rotary wing entity&#39;s rotor wash, such as speed; dead reck...
Definition: DtRotorWashProcess.h:47
Holds the set of rotorwash effects for a helicopter. Creates a.
Definition: DtRotorWashSet.h:31
DtUniqueID myLocalWindId
Definition: DtRotorWashSet.h:143
bool myHasWind
Definition: DtRotorWashSet.h:135
bool myDefaultDiameterAllowed
Definition: DtRotorWashSet.h:138
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
To hold information about the current state of a rotorwash.
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
std::map< DtUniqueID, DtRotorWashState > RotorWashIDtoRotorWashStateMap
Definition: DtRotorWashSet.h:124
Per rotorwash data used in DtRotorWashSet.
Definition: DtRotorWashState.h:24
Contains makVrv::DtUniqueID type.
DtDe & myDe
Definition: DtRotorWashSet.h:126
RotorWashIDtoRotorWashStateMap myRotorWashIDToRotorWashState
Definition: DtRotorWashSet.h:129
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
bool myDefaultWindSpeedAllowed
Definition: DtRotorWashSet.h:137
Contains DLL export macros.

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)