11 #include <matrix/vlVector.h>
13 #include <vrfOM/sets/writeWeatherStateRepository.hpp>
14 #include <vrfOM/sets/readWeatherStateRepository.hpp>
15 #include <vrfOM/sets/readThermoclineLayerRepository.hpp>
28 , myWindLevels("wind-levels")
80 virtual const
double visibility(
double atAlt = 0.)
const {
throw DtUnimplementedMethod(
"visibility(atAltidude) 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."); };
86 virtual void setWindSpeed(
const double& atAlt,
const double&) {
throw DtUnimplementedMethod(
"setWindSpeed(const double& atAlt, const double& vis) 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."); };
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."); };
126 virtual const double ambientAirTemperature()
const override;
127 virtual void setAmbientAirTemperature(
const double&)
override;
129 virtual const double ambientAirPressure()
const override;
130 virtual void setAmbientAirPressure(
const double&)
override;
135 virtual const double precipitationIntensity()
const override;
136 virtual void setPrecipitationIntensity(
const double&)
override;
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;
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;
149 virtual const int priority()
const override;
150 virtual void setPriority(
const int&)
override;
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;
156 virtual const int obscurant(
double atAltitude)
const override;
157 virtual void setObscurant(
double baseAlt,
const int&)
override;
159 virtual const double underwaterVisibility()
const override;
160 virtual void setUnderwaterVisibility(
const double&)
override;
162 virtual const double surfaceTransparency()
const override;
163 virtual void setSurfaceTransparency(
const double&)
override;
165 virtual const double waterCurrentSpeed()
const override;
166 virtual void setWaterCurrentSpeed(
const double&)
override;
168 virtual const double waterCurrentDirection()
const override;
169 virtual void setWaterCurrentDirection(
const double&)
override;
171 virtual const double ambientWaterTemperature()
const override;
172 virtual void setAmbientWaterTemperature(
const double&)
override;
174 virtual const double snowAccumulation()
const override;
175 virtual void setSnowAccumulation(
const double&)
override;
177 virtual const double rainAccumulation()
const override;
178 virtual void setRainAccumulation(
const double&)
override;
180 virtual const double snowMinimumAltitude()
const override;
181 virtual void setSnowMinimumAltitude(
const double&)
override;
183 virtual const double snowRoadAccumulation()
const override;
184 virtual void setSnowRoadAccumulation(
const double&)
override;
186 virtual const double tidalOffset()
const override;
187 virtual void setTidalOffset(
const double&)
override;
189 virtual const int swellState()
const override;
190 virtual void setSwellState(
const int&)
override;
192 virtual const double swellStateDirection()
const override;
193 virtual void setSwellStateDirection(
const double&)
override;
195 virtual const int seaState()
const override;
196 virtual void setSeaState(
const int&)
override;
198 virtual const double seaStateDirection()
const override;
199 virtual void setSeaStateDirection(
const double&)
override;
201 virtual const bool windDrivenSeaStateEnabled()
const override;
202 virtual void setWindDrivenSeaStateEnabled(
const bool&)
override;
204 virtual const double choppiness()
const override;
205 virtual void setChoppiness(
const double&)
override;
207 virtual const double surgeDepth()
const override;
208 virtual void setSurgeDepth(
const double&)
override;
210 virtual const double fogHeight()
const override;
211 virtual void setFogHeight(
const double&)
override;
213 virtual const unsigned int flags()
const override;
214 virtual void setFlags(
const unsigned int&)
override;
216 virtual const bool lightningPresent()
const override;
217 virtual void setLightningPresent(
const bool&)
override;
219 virtual const DtVector fogColor()
const override;
220 virtual void setFogColor(
const DtVector&)
override;
222 virtual const double thermoclineLayer1Depth()
const override;
223 virtual void setThermoclineLayer1Depth(
const double&)
override;
225 virtual const double thermoclineLayer1Permeability()
const override;
226 virtual void setThermoclineLayer1Permeability(
const double&)
override;
228 virtual const double thermoclineLayer2Depth()
const override;
229 virtual void setThermoclineLayer2Depth(
const double&)
override;
231 virtual const double thermoclineLayer2Permeability()
const override;
232 virtual void setThermoclineLayer2Permeability(
const double&)
override;
234 virtual const double thermoclineLayer3Depth()
const override;
235 virtual void setThermoclineLayer3Depth(
const double&)
override;
237 virtual const double thermoclineLayer3Permeability()
const override;
238 virtual void setThermoclineLayer3Permeability(
const double&)
override;
240 virtual const double thermoclineLayer4Depth()
const override;
241 virtual void setThermoclineLayer4Depth(
const double&)
override;
243 virtual const double thermoclineLayer4Permeability()
const override;
244 virtual void setThermoclineLayer4Permeability(
const double&)
override;
246 virtual const double thermoclineLayer5Depth()
const override;
247 virtual void setThermoclineLayer5Depth(
const double&)
override;
249 virtual const double thermoclineLayer5Permeability()
const override;
250 virtual void setThermoclineLayer5Permeability(
const double&)
override;
252 virtual const double airTemperatureAltitude()
const override;
253 virtual void setAirTemperatureAltitude(
const double&)
override;
255 virtual const double airPressureAltitude()
const override;
256 virtual void setAirPressureAltitude(
const double&)
override;
258 virtual const bool airTemperatureAltitudeIsSeaLevel()
const override;
259 virtual void setAirTemperatureAltitudeIsSeaLevel(
const bool&)
override;
261 virtual const bool airPressureAltitudeIsSeaLevel()
const override;
262 virtual void setAirPressureAltitudeIsSeaLevel(
const bool&)
override;
264 virtual const double seaLevelWaterConcentration()
const override;
265 virtual void setSeaLevelWaterConcentration(
const double&)
override;
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;
276 virtual void removeWindLevel(
double baseAltitude)
override;
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;
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;
291 virtual void makeWritable()
override;
294 virtual void makeReadOnly()
override;
297 VRF::WriteThermoclineLayerRepository thermoclineLayer(
int)
const;
300 VRF::WriteThermoclineLayerRepository getOrCreateThermoclineLayer(
int);
303 virtual void setupWindLevels();
317 virtual const double ambientAirTemperature()
const override;
318 virtual const double ambientAirPressure()
const override;
320 virtual const double precipitationIntensity()
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;
365 virtual bool windSpeedAndDirectionAtAltitude(
double altMSL,
double& windSpeed,
double& windDirection)
const override;
368 virtual bool visibilityAndObscurantAtAltitude(
double altMSL,
double&
distance,
int& obs)
const override;
372 bool readComponentValid()
const;
373 bool findReadComponent();
376 VRF::ReadThermoclineLayerRepository thermoclineLayer(
int)
const;
380 virtual void updateWindLevels();
406 if (!myFoundComponent)
408 myFoundComponent = myCurrentFrameState.findReadComponent();
411 if (myNextFrameState.isWritable())
413 myNextFrameState.advancedFrame();
414 myCurrentFrameState.advanceFrame(myNextFrameState);
417 myCurrentFrameState.emitComponentUpdated();
422 myCurrentFrameState.updateStateData(sd);
423 myNextFrameState.updateStateData(sd);
429 myCurrentFrameState.aboutToBeDeleted();
430 myNextFrameState.aboutToBeDeleted();
433 virtual bool forceAdvance()
override;
436 virtual void firstFrameAdvance()
override;
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
Definition: stateComponent.h:83
virtual const DtFrameStateInterface * nextFrameState() const override
Definition: weatherStateComponent.h:402
void advanceFrame(const DtWeatherStateComponentNextFrame &data)
Definition: weatherStateComponent.h:382