VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
weatherLocalNetInterface.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
15 #include <vlutil/vlString.h>
16 #include <vlutil/vlList.h>
17 #include <vl/globalObjectDesignator.h>
20 #include <vrfMetoc/metocEnums.h>
21 
22 class DtVrfObject;
24 class DtSimManager;
27 class DtTroposphereLayerPublisher;
28 class DtSurface;
29 class DtObjectType;
30 
31 namespace makVrfMetoc
32 {
33  class DtTroposphereLayerPublisher;
34  class DtSubsurfaceLayerPublisher;
35  class DtLandSurfacePublisher;
36  class DtWaterSurfacePublisher;
37  class DtServicePublisher;
39  class DtEnvironmentConditionStateRepository;
40 }
41 
42 #ifdef DtDIS
50 #else
51 
59 
60 #endif
61 
66 {
67 protected:
70 
71 public:
72 
75  DtVrfObject* vrfObject,
76  DtReaderWriterRegistry* parentRegistry = 0,
77  bool publishObject = true);
78 
84  const DtWeatherLocalNetInterface & orig,
85  DtReaderWriterRegistry * parentRegistry = 0);
86 
90 
92  virtual ~DtWeatherLocalNetInterface();
93 
94  virtual bool init(const DtEntityIdentifier& id = DtEntityIdentifier::nullId());
95 
97  virtual void updatePublisher();
98 
100  virtual DtString type() const;
101 
102  static DtSimObjectNetInterface* creator(const DtString& name,
103  DtVrfObject* vrfObject,
104  DtReaderWriterRegistry* parentRegistry,
105  bool publishObject);
106 
107  virtual int weatherRecordIndex() const;
108  virtual void destroyPublisher();
109 
110 
111  virtual void onTick() override;
112 
113 protected:
115  virtual DtEnvironmentProcessRepository* epsr() const;
116 
118  virtual void setupRecords();
119 
121  virtual void setupMetocPublisher();
122 
123  virtual void metocTick();
124 
126  virtual void updateMetocPublishers(DtWeatherStateRepository* localState);
127 
128 
130  virtual void updateMetocSurfacePublishers(DtWeatherStateRepository* localState);
131 
132 
134  virtual void updateMetocSubsurfacePublishers(DtWeatherStateRepository* localState);
135 
137  virtual void updateMetocWaterPublishers(DtWeatherStateRepository* localState);
138 
140  virtual void updateMetocTropospherePublishers(DtWeatherStateRepository* localState);
141 
142 
144  virtual void updateCommonMetocWeatherRepository(DtWeatherStateRepository* localState, DtVrfWeatherStateRepositoryPtr repo);
145 
147  virtual void updateMetocGeoreference(DtWeatherStateRepository* localState, DtVrfEnvironmentConditionStateRepositoryPtr repo);
148 
151 
152  virtual std::vector<unsigned> mapCloudStateToLayerAltitudes(DtVrfWeatherCloudState cloudState) const;
153  virtual DtCloudTypeEnum32 mapVrvCloudTypeToMetocCloudType(int) const;
154  virtual DtCloudTypeEnum32 mapCloudStateToCloudType(DtVrfWeatherCloudState cloudState, unsigned altitude) const;
155  virtual float mapCloudStateToCloudCoverage(DtVrfWeatherCloudState cloudState, unsigned altitude) const;
156  virtual float mapCloudStateToCloudDensity(DtVrfWeatherCloudState cloudState, unsigned altitude) const;
157 
158  virtual DtPrecipitationTypeEnum32 mapVrfPrecipitationtypeToMetocPrecipitationType(int vrfPrecipitationType) const;
159 
160  virtual DtHazeTypeEnum32 mapFogColorToHazeType(const DtVector& fogColor);
161  virtual DtHazeTypeEnum32 mapObscurantToHazeType(int obscurant);
162 
163  virtual float mapSwellStateToSwellHeight(int state);
164  virtual float mapSwellStateToSwellLength(int state);
165  virtual int mapSwellStateToSwellPeriod(int state);
166 
167  virtual float mapSeaStateToWaveHeight(int state);
168  virtual float mapSeaStateToWaveLength(int state);
169  virtual int mapSeaStateToWavePeriod(int state);
170  virtual DtGeoLocationTypeEnum32 mapEntityTypeToGeoLocationType(const DtObjectType& type);
172 
173 
174  virtual void updateGeometryRecord(DtWeatherStateRepository* localState);
175 
176  virtual void updateStateRecord(DtWeatherStateRepository* localState);
177 
178  virtual void updateWindLayers(DtWeatherStateRepository* localState);
179 
180  virtual DtEnvironmentProcessPublisher* _createPublisher(const DtEntityIdentifier& id = DtEntityIdentifier::nullId()) const;
181  virtual bool createPublisher(const DtEntityIdentifier& entityId);
182 
183 #ifndef DtDIS
184  virtual DtVrfSubsurfacePublisherPtr createAndInitMetocSubsurfacePublisher() const;
185  virtual DtVrfLandSurfacePublisherPtr createAndInitMetocLandSurfacePublisher() const;
186  virtual DtVrfWaterSurfacePublisherPtr createAndInitMetocWaterSurfacePublisher() const;
187  virtual DtVrfTropospherePublisherPtr createAndInitMetocTropospherePublisher() const;
188  virtual void initializeMetocStateRep(makVrfMetoc::DtEnvironmentConditionStateRepository* sr) const;
189 #endif
190 
191 protected:
193 
197  std::vector<DtVrfTropospherePublisherPtr> myMetocTropospherePublishers;
198 
205 };
DtHazeTypeEnum32
Definition: metocEnums.h:92
Contains the DtSimEnvironmentalModelType class declaration.
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
Instances of DtWeatherStateRepository are used to store state data for METOC_Root.EnvironmentCondition.Weather objects.
Definition: weatherStateRepository.h:33
DtGeoLocationTypeEnum32 myMetocGeoLocationType
Definition: weatherLocalNetInterface.h:201
virtual void updatePublisher()
Update this publisher&#39;s contents.
void * DtVrfWeatherStateRepositoryPtr
Definition: weatherLocalNetInterface.h:48
virtual void destroyPublisher()
Called by the destructor (and also by setPublisher() in some cases).
bool mySetMetocGeoreference
Definition: weatherLocalNetInterface.h:200
Instances of DtTroposphereLayerPublisher publish METOC_Root.EnvironmentCondition.Weather.TroposphereLayer objects to the network.
Definition: troposphereLayerPublisherHLA.h:25
Definition: readerWriterRegistry.h:39
Definition: surface.h:179
This repository holds all information that is common to all the forms of all objects within VR-Forces...
Definition: weatherStateRepository.h:20
Definition: objectType.h:27
void * DtVrfSubsurfacePublisherPtr
Definition: metocServiceLocalNetInterface.h:39
static DtSimObjectNetInterface * creator(const DtString &name, DtVrfObject *vrfObject, DtReaderWriterRegistry *parentRegistry, bool publishObject)
DtVrfLandSurfacePublisherPtr myMetocSurfacePublisher
Definition: weatherLocalNetInterface.h:195
Instances of DtServicePublisher publish METOC_Root.Service objects to the network.
Definition: servicePublisherHLA.h:25
Class Description: DtSimLocalControlObjectNetInterface.
Definition: simLocalControlObjectNetInterface.h:38
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
Instances of DtWaterSurfacePublisher publish METOC_Root.EnvironmentCondition.Weather.WaterSurface objects to the network.
Definition: waterSurfacePublisherHLA.h:25
Definition: vrfEnvironmentalWeatherStateRecord.h:173
DtVrfWaterSurfacePublisherPtr myMetocWaterPublisher
Definition: weatherLocalNetInterface.h:196
const DtSimLocalControlObjectNetInterface & operator=(const DtSimLocalControlObjectNetInterface &orig)
assignment operator; see note on copy constructor above.
DtCloudTypeEnum32
Definition: metocEnums.h:34
std::vector< DtVrfTropospherePublisherPtr > myMetocTropospherePublishers
Definition: weatherLocalNetInterface.h:197
void * DtVrfServicePublisherPtr
Definition: metocServiceLocalNetInterface.h:42
Instances of DtEnvironmentConditionStateRepository are used to store state data for METOC_Root...
Definition: environmentConditionStateRepository.h:32
virtual bool init()
override of base class init(), calls create&lt;...&gt;Record() functions
DtVrfEnvironmentalWeatherStateRecord * myEnvironmentalStateRecord
Definition: weatherLocalNetInterface.h:192
DtVrfWeatherCloudState
Definition: vrfWeatherStateEnums.h:24
virtual bool createPublisher(const DtEntityIdentifier &id=DtEntityIdentifier::nullId())
Called by init() to create a VR-Link publisher, deriving classes create the type of publisher needed ...
DtGeoLocationTypeEnum32
Definition: metocEnums.h:9
Class Description: DtSimObjectNetInterface.
Definition: simObjectNetInterface.h:37
Local network interface for weather state objects.
Definition: weatherLocalNetInterface.h:65
DtPrecipitationTypeEnum32
Definition: metocEnums.h:23
static DtObjectType theAreaType
Definition: weatherLocalNetInterface.h:202
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
static DtObjectType theBoxType
Definition: weatherLocalNetInterface.h:203
void * DtVrfLandSurfacePublisherPtr
Definition: metocServiceLocalNetInterface.h:40
virtual void onTick()
Override of base class onTick() Checks if VR-Forces-specific data has changed.
bool myMetocPublishingEnabled
Definition: weatherLocalNetInterface.h:199
static DtObjectType theCircleType
Definition: weatherLocalNetInterface.h:204
void * DtVrfWaterSurfacePublisherPtr
Definition: metocServiceLocalNetInterface.h:41
virtual DtString type() const
Return type string for publisher that can be referred to in ope files (see &quot;vrfNetIfTypes.h&quot;)
virtual DtEnvironmentProcessPublisher * _createPublisher(const DtEntityIdentifier &id=DtEntityIdentifier::nullId()) const
Override this functions to use a subclass of DtEnvironmentProcessPublisher.
Instances of DtLandSurfacePublisher publish METOC_Root.EnvironmentCondition.Weather.LandSurface objects to the network.
Definition: landSurfacePublisherHLA.h:25
Instances of DtSubsurfaceLayerPublisher publish METOC_Root.EnvironmentCondition.SubsurfaceLayer objec...
Definition: subsurfaceLayerPublisherHLA.h:25
DtVrfSubsurfacePublisherPtr myMetocSubsurfacePublisher
Definition: weatherLocalNetInterface.h:194
void * DtVrfTropospherePublisherPtr
Definition: metocServiceLocalNetInterface.h:38
void * DtVrfEnvironmentConditionStateRepositoryPtr
Definition: weatherLocalNetInterface.h:49

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)