13 #include <tbb/spin_rw_mutex.h>
34 myWindLevels = orig.myWindLevels;
35 myPriority = orig.myPriority;
67 virtual void setVisibility(
const double& atAlt,
const double&) {
throw DtUnimplementedMethod(
"setVisibility(const double& atAlt, const double& vis) is not implemented by this class."); };
71 virtual void setWindSpeed(
const double& atAlt,
const double&) {
throw DtUnimplementedMethod(
"setWindSpeed(const double& atAlt, const double& vis) is not implemented by this class."); };
75 virtual void setWindDirection(
const double& atAlt,
const double&) {
throw DtUnimplementedMethod(
"setWindDirection(const double& atAlt, const double& vis) is not implemented by this class."); };
80 virtual void addWindLevel(
double altitude,
double windSpeed,
double windDirection,
81 double visibleDistance,
int obscurant,
int cloudType,
double cloudDensity,
double skyCoverage) {
101 bool myIsRemoteComponent =
false;
118 virtual void setPriority(
const int&)
override;
119 virtual const int priority()
const override;
121 virtual const double windSpeed(
double atAlt = 0.)
const override;
122 virtual void setWindSpeed(
const double&)
override;
123 virtual void setWindSpeed(
const double& atAlt,
const double&)
override;
125 virtual const double windDirection(
double atAlt = 0.)
const override;
126 virtual void setWindDirection(
const double&)
override;
127 virtual void setWindDirection(
const double& atAlt,
const double&)
override;
129 virtual const int obscurant(
double atAltitude)
const override;
130 virtual void setObscurant(
double baseAlt,
const int&)
override;
131 virtual const double visibility(
double atAltitude)
const override;
132 virtual void setVisibility(
const double&)
override;
133 virtual void setVisibility(
const double&,
const double&)
override;
135 std::shared_ptr<tbb::spin_rw_mutex::scoped_lock> readLock();
136 std::shared_ptr<tbb::spin_rw_mutex::scoped_lock> writeLock();
143 virtual void addWindLevel(
double altitude,
double windSpeed,
double windDirection,
double visibleDistance,
144 int obscurant,
int cloudType,
double cloudDensity,
double skyCoverage)
override;
145 virtual void clearWindLevels()
override;
148 virtual void removeWindLevel(
double baseAltitude)
override;
151 virtual bool windSpeedAndDirectionAtAltitude(
152 double altMSL,
double& windSpeed,
double& windDirection)
const override;
153 virtual void setWindSpeedAndDirectionAtAltitude(
const double& altMSL,
const double& windSpeed,
const double& windDirection)
override;
156 virtual bool visibilityAndObscurantAtAltitude(
double altMSL,
double&
distance,
int& obs)
const override;
157 virtual void setVisibilityAndObscurantAtAltitude(
const double& altMSL,
const double&
distance,
const int& obs)
override;
176 virtual const double windSpeed(
double atAlt = 0.)
const override;
177 virtual const double windDirection(
double atAlt = 0.)
const override;
178 virtual const double visibility(
double atAltitude = 0.)
const override;
179 virtual const int obscurant(
double atAltitude)
const override;
182 virtual bool windSpeedAndDirectionAtAltitude(
double altMSL,
double& windSpeed,
double& windDirection)
const override;
185 virtual bool visibilityAndObscurantAtAltitude(
double altMSL,
double&
distance,
int& obs)
const override;
virtual const int obscurant(double atAlt=0.) const
Accessors/mutators for wind level.
Definition: troposphereStateComponent.h:77
virtual void setVisibility(const double &atAlt, const double &)
Accessors/mutators for wind level.
Definition: troposphereStateComponent.h:67
3) Define the current frame class. This will be used for read access.
Definition: troposphereStateComponent.h:164
0) Define the State Component Data. This struct replaces the legion stuff
Definition: troposphereStateComponent.h:19
Definition: stateDataTypes.h:23
virtual void setWindDirection(const double &atAlt, const double &)
Accessors/mutators for wind level.
Definition: troposphereStateComponent.h:75
DtTroposphereStateComponentNextFrame(DtStateData *sd)
Definition: troposphereStateComponent.h:108
virtual const double windSpeed(double atAlt=0.) const
Accessors/mutators for wind level.
Definition: troposphereStateComponent.h:69
Definition: stateComponentImplementationTemplate.h:68
Definition: stateComponent.h:269
virtual void setVisibilityAndObscurantAtAltitude(const double &altMSL, const double &distance, const int &obs)
Accessors/mutators for wind level.
Definition: troposphereStateComponent.h:95
virtual void removeWindLevel(double baseAltitude)
Must be exact match.
Definition: troposphereStateComponent.h:87
DtTroposphereStateComponentCurrentFrame(DtStateData *sd)
Definition: troposphereStateComponent.h:167
2) Define the next frame class. This will be used for write access.
Definition: troposphereStateComponent.h:105
#define CURRENTFRAME_ACCESSOR_BY_REF(MemberType, Accessor, MutatorAndMember)
Definition: stateComponentImplementationTemplate.h:64
#define CURRENTFRAME_ACCESSOR(MemberType, Accessor, MutatorAndMember)
Definition: stateComponentImplementationTemplate.h:61
virtual bool visibilityAndObscurantAtAltitude(double altMSL, double &distance, int &obs) const
Given the altitude, return the visibility and obscurant.
Definition: troposphereStateComponent.h:94
virtual void setWindSpeedAndDirectionAtAltitude(const double &altMSL, const double &windSpeed, const double &windDirection)
Accessors/mutators for wind level.
Definition: troposphereStateComponent.h:91
Definition: stateComponent.h:102
virtual const double visibility(double atAlt=0.) const
Accessors/mutators for wind level.
Definition: troposphereStateComponent.h:65
Definition: stateComponentImplementationTemplate.h:87
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 ~DtTroposphereStateComponentNextFrame() override
Definition: troposphereStateComponent.h:113
virtual bool windSpeedAndDirectionAtAltitude(double altMSL, double &windSpeed, double &windDirection) const
Given the altitude, return the wind speed and direction.
Definition: troposphereStateComponent.h:90
virtual void clearWindLevels()
Accessors/mutators for wind level.
Definition: troposphereStateComponent.h:84
virtual void setWindSpeed(const double &atAlt, const double &)
Accessors/mutators for wind level.
Definition: troposphereStateComponent.h:71
virtual void setVisibility(const double &)
Accessors/mutators for wind level.
Definition: troposphereStateComponent.h:66
virtual void setWindDirection(const double &)
Accessors/mutators for wind level.
Definition: troposphereStateComponent.h:74
virtual const double windDirection(double atAlt=0.) const
Accessors/mutators for wind level.
Definition: troposphereStateComponent.h:73
#define UNDEFINED_RETURNVALUE_ACCESSOR_MUTATOR(Type, Member, Set)
Definition: doubleBufferedDataStorage.h:53
DtTroposphereStateComponentData & operator=(const DtTroposphereStateComponentData &orig)
Definition: troposphereStateComponent.h:31
void setIsRemoteComponent(bool b)
Definition: troposphereStateComponent.h:98
#define UNDEFINED_RETURNREF_ACCESSOR_MUTATOR(Type, Member, Set)
Definition: doubleBufferedDataStorage.h:57
#define ACCESSOR_MUTATOR_MEMBER(MemberType, Accessor, MutatorAndMember)
Definition: stateComponentImplementationTemplate.h:25
virtual void setWindSpeed(const double &)
Accessors/mutators for wind level.
Definition: troposphereStateComponent.h:70
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: troposphereStateComponent.h:80
#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
DtStateComponentCreator< DtTroposphereStateComponentImplementation > DtTroposphereStateComponentCreator
5) Define the creator. This will need to be registered with the REGISTER_STATE_COMPONENT macro in the...
Definition: troposphereStateComponent.h:194
virtual void setObscurant(double atAlt, const int &)
Accessors/mutators for wind level.
Definition: troposphereStateComponent.h:78
DtTroposphereStateComponentData(const DtTroposphereStateComponentData &orig)
Definition: troposphereStateComponent.h:26
Contains the DtStateComponent class declaration.
Definition: rwWindLevels.h:17
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: stateComponentImplementationTemplate.h:135
1) Define the interface class that will be used to represent the next and current frames...
Definition: troposphereStateComponent.h:46
DtTroposphereStateComponentData()
Definition: troposphereStateComponent.h:21
tbb::spin_rw_mutex myMutex
Definition: troposphereStateComponent.h:160