VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtRotorWashProcess.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 #include <vrvCore/DtUniqueID.h>
16 #include <vlutil/vlTime.h>
17 
18 namespace makVrv
19 {
20  struct DtRotorWashState;
21  class DtIntersector;
22  class DtSimpleIntersector;
23  class DtSceneObject;
24 
32  {
33  public:
34 
36  DtRotorWashProcess( DtDe& de );
37 
39  virtual ~DtRotorWashProcess();
40 
42  virtual void setHelicopterId(DtUniqueID helicopterID);
43 
48  virtual void update( DtTime tNow );
49 
52  virtual DtVector currentHeloPosition() const;
53 
56  virtual DtTaitBryan currentHeloOrientation() const;
57 
64  virtual void calcRotorWashLagRelOffset(const DtTime& tNow,
65  const DtVector& currentHeliPos, const DtTaitBryan& currentHeliOri,
66  DtVector& outRelativeOffset, double& lagHeliAngleDistToGround);
67 
69  virtual void setRotorWashState(const DtRotorWashState* rwState);
70 
72  virtual DtVector currentHeliPos() const;
75 
77  virtual DtTaitBryan currentHeliOri() const;
78 
80  virtual DtVector offsetPos() const;
81 
83  virtual float intensity() const;
84 
86  virtual float rotorWashSpeed() const;
87 
89  virtual DtVector rotorWashPos() const;
90 
92  virtual DtVector rotorWashDir() const;
94 
95  private:
101  DtRotorWashProcess &operator=(const DtRotorWashProcess &other);
102 
103  protected:
104 
107  virtual const DtRotorWashState* rotorWashState();
108 
110  virtual DtVector calcRotorDownDirection(const DtVector& currentPos,
111  const DtTaitBryan& orientation);
112 
115  virtual double getHeightAboveTerrain(const DtVector& pos);
116 
119  virtual bool getTerrainOrPropIntersection(
120  const DtVector& startPos, const DtVector& endPos,
121  DtVector& result);
122 
124  virtual DtVector getHeliVelocity(DtTime tNow);
125 
129  virtual DtVector convertOffset(const DtVector& worldOffset, const DtTaitBryan& heliOri);
130 
131  protected:
132 
135 
138  // Keep track of the rotorwash points so they can 'lag' a more the
139  // higher the altitude
141 
144 
145  // Variables to communicate to other classes outside of
146  // the DtRotorWashProcess
148  DtTaitBryan myCurrentHeliOri;
149  // Offset for particle system is given in (forward, right, down) coords
151  float myIntensity;
155  };
156 
160  {
161  public:
164 
166  virtual ~DtRotorWashProcessCreator();
167 
171  static DtRotorWashProcessCreator& instance(DtDe& de);
172 
174  virtual DtRotorWashProcess* create(DtDe&);
175  };
176 }
DtTaitBryan myCurrentHeliOri
Definition: DtRotorWashProcess.h:148
Definition: DtRotorWashTrailPoints.h:64
DtDe & myDe
The display engine.
Definition: DtRotorWashProcess.h:134
float myIntensity
Definition: DtRotorWashProcess.h:151
Virtual base class.
Definition: DtVirtualBaseClass.h:19
DtSceneObject * mySceneObject
Definition: DtRotorWashProcess.h:142
Creator for DtRotorWashProcess class.
Definition: DtRotorWashProcess.h:159
DtIntersector is an abstract class that provides the interface for requesting intersections with the ...
Definition: DtIntersector.h:129
DtVector myOffsetFromHeli
Definition: DtRotorWashProcess.h:150
float myRotorWashSpeed
Definition: DtRotorWashProcess.h:152
DtRotorWashProcess maintains a model of the rotary wing entity&#39;s rotor wash, such as speed; dead reck...
Definition: DtRotorWashProcess.h:31
DtSimpleIntersector * myHATIntersector
Definition: DtRotorWashProcess.h:137
DtVector myCurrentHeliPos
Definition: DtRotorWashProcess.h:147
Contains makVrv::DtVirtualBaseClass class.
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
const DtRotorWashState * myRotorWashState
Definition: DtRotorWashProcess.h:143
DtIntersector * myIntersector
Definition: DtRotorWashProcess.h:136
DtSimpleIntersector is a higher-level intersector class which adds functions for line of sight...
Definition: DtSimpleIntersector.h:52
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
Keeps track of previous rotorwash positions and times so that the rotorwash can lag behind the helico...
DtVector myRotorWashPos
Definition: DtRotorWashProcess.h:153
DtVector myRotorWashDir
Definition: DtRotorWashProcess.h:154
DtRotorWashTrailPoints myRotorWashPoints
Definition: DtRotorWashProcess.h:140
A DtSceneObject represents an object that can be positioned in the scene by (possibly) attaching it t...
Definition: DtSceneObject.h:41
Per rotorwash data used in DtRotorWashSet.
Definition: DtRotorWashState.h:24
Contains makVrv::DtUniqueID type.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
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)