VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
weatherStateComponent.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
11 #include <matrix/vlVector.h>
12 #include <vrfutil/rwWindLevels.h>
13 #include <vrfOM/sets/writeWeatherStateRepository.hpp>
14 #include <vrfOM/sets/readWeatherStateRepository.hpp>
15 #include <vrfOM/sets/readThermoclineLayerRepository.hpp>
16 
17 namespace makVrf
18 {
22  {
23  public:
25 
27  : DtFrameStateInterface(storage)
28  , myWindLevels("wind-levels")
29  {
30  }
31 
32  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, ambientAirTemperature, AmbientAirTemperature)
33  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, ambientAirPressure, AmbientAirPressure)
35  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, precipitationIntensity, PrecipitationIntensity)
36  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(DtVrfWeatherPrecipitationType, precipitationType, PrecipitationType)
37  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(int, priority, Priority)
38  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, underwaterVisibility, UnderwaterVisibility)
39  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, surfaceTransparency, SurfaceTransparency)
40  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, waterCurrentSpeed, WaterCurrentSpeed)
41  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, waterCurrentDirection, WaterCurrentDirection)
42  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, ambientWaterTemperature, AmbientWaterTemperature)
43  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, snowAccumulation, SnowAccumulation)
44  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, rainAccumulation, RainAccumulation)
45  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, snowMinimumAltitude, SnowMinimumAltitude)
46  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, snowRoadAccumulation, SnowRoadAccumulation)
47  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, tidalOffset, TidalOffset)
48  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(int, swellState, SwellState)
49  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, swellStateDirection, SwellStateDirection)
50  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(int, seaState, SeaState)
51  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, seaStateDirection, SeaStateDirection)
52  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(bool, windDrivenSeaStateEnabled, WindDrivenSeaStateEnabled)
53  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, choppiness, Choppiness)
54  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, surgeDepth, SurgeDepth)
55  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, fogHeight, FogHeight)
56  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(unsigned int, flags, Flags)
57  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(bool, lightningPresent, LightningPresent)
58  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(DtVector, fogColor, FogColor)
59  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, airTemperatureAltitude, AirTemperatureAltitude)
60  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, airPressureAltitude, AirPressureAltitude)
61  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(bool, airTemperatureAltitudeIsSeaLevel, AirTemperatureAltitudeIsSeaLevel)
62  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(bool, airPressureAltitudeIsSeaLevel, AirPressureAltitudeIsSeaLevel)
63  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, seaLevelWaterConcentration, SeaLevelWaterConcentration)
64  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, thermoclineLayer1Depth, ThermoclineLayer1Depth)
65  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, thermoclineLayer1Permeability, ThermoclineLayer1Permeability)
66  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, thermoclineLayer2Depth, ThermoclineLayer2Depth)
67  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, thermoclineLayer2Permeability, ThermoclineLayer2Permeability)
68  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, thermoclineLayer3Depth, ThermoclineLayer3Depth)
69  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, thermoclineLayer3Permeability, ThermoclineLayer3Permeability)
70  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, thermoclineLayer4Depth, ThermoclineLayer4Depth)
71  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, thermoclineLayer4Permeability, ThermoclineLayer4Permeability)
72  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, thermoclineLayer5Depth, ThermoclineLayer5Depth)
73  UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(double, thermoclineLayer5Permeability, ThermoclineLayer5Permeability)
74 
77 
80  virtual const double visibility(double atAlt = 0.) const { throw DtUnimplementedMethod("visibility(atAltidude) is not implemented by this class."); };
81  virtual void setVisibility(const double&) { throw DtUnimplementedMethod("setVisibility(double) is not implemented by this class."); };
82  virtual void setVisibility(const double& atAlt, const double&) { throw DtUnimplementedMethod("setVisibility(const double& atAlt, const double& vis) is not implemented by this class."); };
83 
84  virtual const double windSpeed(double atAlt = 0.) const { throw DtUnimplementedMethod("windSpeed(atAltidude) is not implemented by this class."); };
85  virtual void setWindSpeed(const double&) { throw DtUnimplementedMethod("setWindSpeed(double) is not implemented by this class."); };
86  virtual void setWindSpeed(const double& atAlt, const double&) { throw DtUnimplementedMethod("setWindSpeed(const double& atAlt, const double& vis) is not implemented by this class."); };
87 
88  virtual const double windDirection(double atAlt = 0.) const { throw DtUnimplementedMethod("windDirection(atAltidude) is not implemented by this class."); };
89  virtual void setWindDirection(const double&) { throw DtUnimplementedMethod("setWindDirection(double) is not implemented by this class."); };
90  virtual void setWindDirection(const double& atAlt, const double&) { throw DtUnimplementedMethod("setWindDirection(const double& atAlt, const double& vis) is not implemented by this class."); };
91 
92  virtual const int obscurant(double atAlt = 0.) const { throw DtUnimplementedMethod("obscurant(atAltidude) is not implemented by this class."); };
93  virtual void setObscurant(double atAlt, const int&) { throw DtUnimplementedMethod("setObscurant(double, int) is not implemented by this class."); };
94 
95  virtual void addWindLevel(double altitude, double windSpeed, double windDirection,
96  double visibleDistance, int obscurant, int cloudType, double cloudDensity, double skyCoverage) { throw DtUnimplementedMethod("addWindLevel is not implemented by this class."); };
97  virtual void clearWindLevels() { throw DtUnimplementedMethod("clearWindLevels is not implemented by this class."); };
98 
100  virtual void removeWindLevel(double baseAltitude) { throw DtUnimplementedMethod("removeWindLevel is not implemented by this class."); };
101 
103  virtual bool windSpeedAndDirectionAtAltitude(double altMSL, double& windSpeed, double& windDirection) const { throw DtUnimplementedMethod("windSpeedAndDirectionAtAltitude is not implemented by this class."); };
104  virtual void setWindSpeedAndDirectionAtAltitude(const double& altMSL, const double& windSpeed, const double& windDirection) { throw DtUnimplementedMethod("setWindSpeedAndDirectionAtAltitude is not implemented by this class."); };
105 
107  virtual bool visibilityAndObscurantAtAltitude(double altMSL, double& distance, int& obs) const { throw DtUnimplementedMethod("visibilityAndObscurantAtAltitude is not implemented by this class."); };
108  virtual void setVisibilityAndObscurantAtAltitude(const double& altMSL, const double& distance, const int& obs) { throw DtUnimplementedMethod("setVisibilityAndObscurantAtAltitude is not implemented by this class."); };
109 
110  virtual void setWindLevels(const DtRwWindLevels&){ throw DtUnimplementedMethod("setWindLevels is not implemented by this class."); };
111  virtual const DtRwWindLevels& windLevels() const { throw DtUnimplementedMethod("windLevels is not implemented by this class."); };
113 
114  protected:
115  DtRwWindLevels myWindLevels;
116  };
117 
120  {
121  public:
123 
125 
126  virtual const double ambientAirTemperature() const override;
127  virtual void setAmbientAirTemperature(const double&) override;
128 
129  virtual const double ambientAirPressure() const override;
130  virtual void setAmbientAirPressure(const double&) override;
131 
132  virtual const DtVrfWeatherCloudState cloudState() const override;
133  virtual void setCloudState(const DtVrfWeatherCloudState&) override;
134 
135  virtual const double precipitationIntensity() const override;
136  virtual void setPrecipitationIntensity(const double&) override;
137 
138  virtual const DtVrfWeatherPrecipitationType precipitationType() const override;
139  virtual void setPrecipitationType(const DtVrfWeatherPrecipitationType&) override;
140 
141  virtual const double windSpeed(double atAlt = 0.) const override;
142  virtual void setWindSpeed(const double&) override;
143  virtual void setWindSpeed(const double& atAlt, const double&) override;
144 
145  virtual const double windDirection(double atAlt = 0.) const override;
146  virtual void setWindDirection(const double&) override;
147  virtual void setWindDirection(const double& atAlt, const double&) override;
148 
149  virtual const int priority() const override;
150  virtual void setPriority(const int&) override;
151 
152  virtual const double visibility(double atAltitude) const override;
153  virtual void setVisibility(const double&) override;
154  virtual void setVisibility(const double&, const double&) override;
155 
156  virtual const int obscurant(double atAltitude) const override;
157  virtual void setObscurant(double baseAlt, const int&) override;
158 
159  virtual const double underwaterVisibility() const override;
160  virtual void setUnderwaterVisibility(const double&) override;
161 
162  virtual const double surfaceTransparency() const override;
163  virtual void setSurfaceTransparency(const double&) override;
164 
165  virtual const double waterCurrentSpeed() const override;
166  virtual void setWaterCurrentSpeed(const double&) override;
167 
168  virtual const double waterCurrentDirection() const override;
169  virtual void setWaterCurrentDirection(const double&) override;
170 
171  virtual const double ambientWaterTemperature() const override;
172  virtual void setAmbientWaterTemperature(const double&) override;
173 
174  virtual const double snowAccumulation() const override;
175  virtual void setSnowAccumulation(const double&) override;
176 
177  virtual const double rainAccumulation() const override;
178  virtual void setRainAccumulation(const double&) override;
179 
180  virtual const double snowMinimumAltitude() const override;
181  virtual void setSnowMinimumAltitude(const double&) override;
182 
183  virtual const double snowRoadAccumulation() const override;
184  virtual void setSnowRoadAccumulation(const double&) override;
185 
186  virtual const double tidalOffset() const override;
187  virtual void setTidalOffset(const double&) override;
188 
189  virtual const int swellState() const override;
190  virtual void setSwellState(const int&) override;
191 
192  virtual const double swellStateDirection() const override;
193  virtual void setSwellStateDirection(const double&) override;
194 
195  virtual const int seaState() const override;
196  virtual void setSeaState(const int&) override;
197 
198  virtual const double seaStateDirection() const override;
199  virtual void setSeaStateDirection(const double&) override;
200 
201  virtual const bool windDrivenSeaStateEnabled() const override;
202  virtual void setWindDrivenSeaStateEnabled(const bool&) override;
203 
204  virtual const double choppiness() const override;
205  virtual void setChoppiness(const double&) override;
206 
207  virtual const double surgeDepth() const override;
208  virtual void setSurgeDepth(const double&) override;
209 
210  virtual const double fogHeight() const override;
211  virtual void setFogHeight(const double&) override;
212 
213  virtual const unsigned int flags() const override;
214  virtual void setFlags(const unsigned int&) override;
215 
216  virtual const bool lightningPresent() const override;
217  virtual void setLightningPresent(const bool&) override;
218 
219  virtual const DtVector fogColor() const override;
220  virtual void setFogColor(const DtVector&) override;
221 
222  virtual const double thermoclineLayer1Depth() const override;
223  virtual void setThermoclineLayer1Depth(const double&) override;
224 
225  virtual const double thermoclineLayer1Permeability() const override;
226  virtual void setThermoclineLayer1Permeability(const double&) override;
227 
228  virtual const double thermoclineLayer2Depth() const override;
229  virtual void setThermoclineLayer2Depth(const double&) override;
230 
231  virtual const double thermoclineLayer2Permeability() const override;
232  virtual void setThermoclineLayer2Permeability(const double&) override;
233 
234  virtual const double thermoclineLayer3Depth() const override;
235  virtual void setThermoclineLayer3Depth(const double&) override;
236 
237  virtual const double thermoclineLayer3Permeability() const override;
238  virtual void setThermoclineLayer3Permeability(const double&) override;
239 
240  virtual const double thermoclineLayer4Depth() const override;
241  virtual void setThermoclineLayer4Depth(const double&) override;
242 
243  virtual const double thermoclineLayer4Permeability() const override;
244  virtual void setThermoclineLayer4Permeability(const double&) override;
245 
246  virtual const double thermoclineLayer5Depth() const override;
247  virtual void setThermoclineLayer5Depth(const double&) override;
248 
249  virtual const double thermoclineLayer5Permeability() const override;
250  virtual void setThermoclineLayer5Permeability(const double&) override;
251 
252  virtual const double airTemperatureAltitude() const override;
253  virtual void setAirTemperatureAltitude(const double&) override;
254 
255  virtual const double airPressureAltitude() const override;
256  virtual void setAirPressureAltitude(const double&) override;
257 
258  virtual const bool airTemperatureAltitudeIsSeaLevel() const override;
259  virtual void setAirTemperatureAltitudeIsSeaLevel(const bool&) override;
260 
261  virtual const bool airPressureAltitudeIsSeaLevel() const override;
262  virtual void setAirPressureAltitudeIsSeaLevel(const bool&) override;
263 
264  virtual const double seaLevelWaterConcentration() const override;
265  virtual void setSeaLevelWaterConcentration(const double&) override;
266 
269 
272  virtual void addWindLevel(double altitude, double windSpeed, double windDirection, double visibleDistance, int obscurant, int cloudType, double cloudDensity, double skyCoverage) override;
273  virtual void clearWindLevels() override;
274 
276  virtual void removeWindLevel(double baseAltitude) override;
277 
279  virtual bool windSpeedAndDirectionAtAltitude(double altMSL, double& windSpeed, double& windDirection) const override;
280  virtual void setWindSpeedAndDirectionAtAltitude(const double& altMSL, const double& windSpeed, const double& windDirection) override;
281 
283  virtual bool visibilityAndObscurantAtAltitude(double altMSL, double& distance, int& obs) const override;
284  virtual void setVisibilityAndObscurantAtAltitude(const double& altMSL, const double& distance, const int& obs) override;
285 
286  virtual void setWindLevels(const DtRwWindLevels&) override;
287  virtual const DtRwWindLevels& windLevels() const override;
289 
291  virtual void makeWritable() override;
292 
294  virtual void makeReadOnly() override;
295 
296  protected:
297  VRF::WriteThermoclineLayerRepository thermoclineLayer(int) const;
298 
300  VRF::WriteThermoclineLayerRepository getOrCreateThermoclineLayer(int);
301 
302  protected:
303  virtual void setupWindLevels();
304 
305  protected:
306  VRF::WriteWeatherStateRepository myWriteWeatherStateRepository;
307  };
308 
311  {
312  public:
314  virtual ~DtWeatherStateComponentCurrentFrame() override;
315 
317  virtual const double ambientAirTemperature() const override;
318  virtual const double ambientAirPressure() const override;
319  virtual const DtVrfWeatherCloudState cloudState() const override;
320  virtual const double precipitationIntensity() const override;
321  virtual const DtVrfWeatherPrecipitationType precipitationType() const override;
322  virtual const double windSpeed(double atAlt = 0.) const override;
323  virtual const double windDirection(double atAlt = 0.) const override;
324  virtual const int priority() const override;
325  virtual const double visibility(double atAltitude = 0.) const override;
326  virtual const int obscurant(double atAltitude) const override;
327  virtual const double underwaterVisibility() const override;
328  virtual const double surfaceTransparency() const override;
329  virtual const double waterCurrentSpeed() const override;
330  virtual const double waterCurrentDirection() const override;
331  virtual const double ambientWaterTemperature() const override;
332  virtual const double snowAccumulation() const override;
333  virtual const double rainAccumulation() const override;
334  virtual const double snowMinimumAltitude() const override;
335  virtual const double snowRoadAccumulation() const override;
336  virtual const double tidalOffset() const override;
337  virtual const int swellState() const override;
338  virtual const double swellStateDirection() const override;
339  virtual const int seaState() const override;
340  virtual const double seaStateDirection() const override;
341  virtual const bool windDrivenSeaStateEnabled() const override;
342  virtual const double choppiness() const override;
343  virtual const double surgeDepth() const override;
344  virtual const double fogHeight() const override;
345  virtual const DtVector fogColor() const override;
346  virtual const unsigned int flags() const override;
347  virtual const bool lightningPresent() const override;
348  virtual const double thermoclineLayer1Depth() const override;
349  virtual const double thermoclineLayer1Permeability() const override;
350  virtual const double thermoclineLayer2Depth() const override;
351  virtual const double thermoclineLayer2Permeability() const override;
352  virtual const double thermoclineLayer3Depth() const override;
353  virtual const double thermoclineLayer3Permeability() const override;
354  virtual const double thermoclineLayer4Depth() const override;
355  virtual const double thermoclineLayer4Permeability() const override;
356  virtual const double thermoclineLayer5Depth() const override;
357  virtual const double thermoclineLayer5Permeability() const override;
358  virtual const double airTemperatureAltitude() const override;
359  virtual const double airPressureAltitude() const override;
360  virtual const bool airTemperatureAltitudeIsSeaLevel() const override;
361  virtual const bool airPressureAltitudeIsSeaLevel() const override;
362  virtual const double seaLevelWaterConcentration() const override;
363 
365  virtual bool windSpeedAndDirectionAtAltitude(double altMSL, double& windSpeed, double& windDirection) const override;
366 
368  virtual bool visibilityAndObscurantAtAltitude(double altMSL, double& distance, int& obs) const override;
369 
370  virtual const DtRwWindLevels& windLevels() const override;
371 
372  bool readComponentValid() const;
373  bool findReadComponent();
374 
375  protected:
376  VRF::ReadThermoclineLayerRepository thermoclineLayer(int) const;
377 
378  protected:
380  virtual void updateWindLevels();
381 
383  {
384  myWindLevels = data.windLevels();
385  }
386 
387  protected:
388  VRF::ReadWeatherStateRepository myReadWeatherStateRepository;
389  unsigned int myCallbackHandle;
390  };
391 
395  {
396  public:
398 
399  bool isDoubleBuffered() { return true; };
400  virtual const DtFrameStateInterface* currentFrameState() const override { return &myCurrentFrameState; }
401  virtual DtFrameStateInterface* nextFrameState() override { return &myNextFrameState; };
402  virtual const DtFrameStateInterface* nextFrameState() const override { return &myNextFrameState; };
403 
404  virtual void updateDataStorage() override
405  {
406  if (!myFoundComponent)
407  {
408  myFoundComponent = myCurrentFrameState.findReadComponent();
409  }
410 
411  if (myNextFrameState.isWritable())
412  {
413  myNextFrameState.advancedFrame();
414  myCurrentFrameState.advanceFrame(myNextFrameState);
415  }
416 
417  myCurrentFrameState.emitComponentUpdated();
418  }
419 
420  virtual void updateStateData(DtStateData* sd) override
421  {
422  myCurrentFrameState.updateStateData(sd);
423  myNextFrameState.updateStateData(sd);
424  }
425 
426  virtual void aboutToBeDeleted() override
427  {
429  myCurrentFrameState.aboutToBeDeleted();
430  myNextFrameState.aboutToBeDeleted();
431  }
432 
433  virtual bool forceAdvance() override;
434 
436  virtual void firstFrameAdvance() override;
437 
438  protected:
442  };
443 
447 }
DtVrfWeatherPrecipitationType
Definition: vrfWeatherStateEnums.h:13
virtual void addWindLevel(double altitude, double windSpeed, double windDirection, double visibleDistance, int obscurant, int cloudType, double cloudDensity, double skyCoverage)
Accessors/mutators for wind level.
Definition: weatherStateComponent.h:95
Definition: stateDataTypes.h:23
virtual const int obscurant(double atAlt=0.) const
Accessors/mutators for wind level.
Definition: weatherStateComponent.h:92
DtWeatherStateComponentNextFrame myNextFrameState
Definition: weatherStateComponent.h:440
Definition: stateComponent.h:269
virtual void setWindSpeed(const double &atAlt, const double &)
Accessors/mutators for wind level.
Definition: weatherStateComponent.h:86
virtual void setObscurant(double atAlt, const int &)
Accessors/mutators for wind level.
Definition: weatherStateComponent.h:93
virtual void setWindSpeed(const double &)
Accessors/mutators for wind level.
Definition: weatherStateComponent.h:85
virtual void setVisibility(const double &atAlt, const double &)
Accessors/mutators for wind level.
Definition: weatherStateComponent.h:82
virtual const double windSpeed(double atAlt=0.) const
Accessors/mutators for wind level.
Definition: weatherStateComponent.h:84
virtual const DtRwWindLevels & windLevels() const override
Accessors/mutators for wind level.
virtual void setWindDirection(const double &atAlt, const double &)
Accessors/mutators for wind level.
Definition: weatherStateComponent.h:90
unsigned int myCallbackHandle
Definition: weatherStateComponent.h:389
virtual void setWindDirection(const double &)
Accessors/mutators for wind level.
Definition: weatherStateComponent.h:89
1) Define the interface class that will be used to represent the next and curent frames. The UNDEFINED_ macros are convenience macros that will define methods that throw exceptions (until they are implemented)
Definition: weatherStateComponent.h:21
VRF::WriteWeatherStateRepository myWriteWeatherStateRepository
Definition: weatherStateComponent.h:306
virtual void aboutToBeDeleted() override
Definition: weatherStateComponent.h:426
virtual void updateDataStorage() override
Implement to update data storage. Called from advanceFrame.
Definition: weatherStateComponent.h:404
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points. Coordinates are in local database coordinates The coordinat...
#define DEFINE_STATE_COMPONENT_TYPE(CreatedComponent)
Definition: stateComponent.h:231
virtual const double windDirection(double atAlt=0.) const
Accessors/mutators for wind level.
Definition: weatherStateComponent.h:88
virtual void removeWindLevel(double baseAltitude)
Must be exact match.
Definition: weatherStateComponent.h:100
Subclass from this to indicate that this will be a double buffered state component.
Definition: stateComponent.h:384
3) Define the current frame class. This will be used for read access.
Definition: weatherStateComponent.h:310
DtWeatherStateComponentCurrentFrame myCurrentFrameState
Definition: weatherStateComponent.h:439
2) Define the next frame class. This will be used for write access.
Definition: weatherStateComponent.h:119
#define UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(Type, Member, Set)
Definition: doubleBufferedDataStorage.h:53
virtual void aboutToBeDeleted()
4) Define the state component that will contain the wrappers to the next and current frame states tha...
Definition: weatherStateComponent.h:394
VRF::ReadWeatherStateRepository myReadWeatherStateRepository
Definition: weatherStateComponent.h:388
DtVrfWeatherCloudState
Definition: vrfWeatherStateEnums.h:24
virtual DtFrameStateInterface * nextFrameState() override
Definition: weatherStateComponent.h:401
bool myFoundComponent
Definition: weatherStateComponent.h:441
bool isDoubleBuffered()
Definition: weatherStateComponent.h:399
virtual const DtFrameStateInterface * currentFrameState() const override
Definition: weatherStateComponent.h:400
virtual const DtRwWindLevels & windLevels() const
Accessors/mutators for wind level.
Definition: weatherStateComponent.h:111
virtual void setVisibility(const double &)
Accessors/mutators for wind level.
Definition: weatherStateComponent.h:81
virtual bool windSpeedAndDirectionAtAltitude(double altMSL, double &windSpeed, double &windDirection) const
Given the altitude, return the wind speed and direction.
Definition: weatherStateComponent.h:103
DtStateComponentCreator< DtWeatherStateComponentImplementation > DtWeatherStateComponentCreator
5) Define the creator. This will need to be registered with the REGISTER_STATE_COMPONENT macro in the...
Definition: weatherStateComponent.h:446
virtual void clearWindLevels()
Accessors/mutators for wind level.
Definition: weatherStateComponent.h:97
virtual void setWindLevels(const DtRwWindLevels &)
Accessors/mutators for wind level.
Definition: weatherStateComponent.h:110
#define DT_DLL_vrfStateData
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfStateDataDefines.h:26
virtual bool visibilityAndObscurantAtAltitude(double altMSL, double &distance, int &obs) const
Given the altitude, return the visibility and obscurant.
Definition: weatherStateComponent.h:107
virtual void updateStateData(DtStateData *sd) override
Implement to update data storage to the new state data.
Definition: weatherStateComponent.h:420
virtual void setVisibilityAndObscurantAtAltitude(const double &altMSL, const double &distance, const int &obs)
Accessors/mutators for wind level.
Definition: weatherStateComponent.h:108
Contains the DtStateComponent class declaration.
Definition: rwWindLevels.h:17
virtual void setWindSpeedAndDirectionAtAltitude(const double &altMSL, const double &windSpeed, const double &windDirection)
Accessors/mutators for wind level.
Definition: weatherStateComponent.h:104
This is a simple base class that will be used to return a pointer to current or next frame state...
Definition: stateComponent.h:294
virtual const DtFrameStateInterface * nextFrameState() const override
Definition: weatherStateComponent.h:402
void advanceFrame(const DtWeatherStateComponentNextFrame &data)
Definition: weatherStateComponent.h:382

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)