VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtBuoyBeaconFeatureBuilder.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 
17 
19 
20 #include <matrix/vlVector.h>
21 
22 #include <string>
23 
24 namespace makVrv
25 {
26  class DtAgentManagerInterface;
27  class DtDe;
28  class DtBuoyBeaconModelStringParser;
29  class DtArticulatedModelAgent;
30  class DtModelDefinition;
31 
40  {
41  public:
43 
46 
49 
51  virtual ~DtBuoyBeaconFeatureBuilder();
52 
77  DtUniqueID create(
78  DtDe& de,
79  const std::string& registrantName,
80  const std::string& featureStyleName,
81  const std::string& strFeatureName,
82  const DtVector& vPosition,
83  double scale,
84  DtVector minBound,
85  DtVector maxBound);
86 
87  protected:
88 
96  DtBuoyBeaconFeatureBuilder( DtDe& de, const std::string& registrantName,
98  const std::string& featureClass );
99 
114  virtual void determineStationaryHeight( DtVector& buoyOrBeaconPos, double modelHeightAboveOrigin );
115 
123  std::string buildModelDefinition( const std::string& markerName );
124 
125  void build2DModelDefinitions( const std::string& markerName,
126  std::string& modelDef2dUnlighted, std::string& modelDef2dLighted );
127 
137  std::string parseAndBuild( const std::string& markerStr );
138 
139  virtual void createAndAddBuoy( DtUniqueID elementId,
140  const std::string& modelDefName, const std::string& modelDef2dUnlighted,
141  std::string& modelDef2dLighted, const std::string& buoyName,
142  const DtVector& vPosition, const std::string& designator );
143 
147  int s57SeasonDateToDayInYear( const std::string& seasonDate );
148 
151  int calcCurrentDayOfTheYear();
152 
155  static bool checkSeasonalState( int seasonStart, int seasonEnd, int currentDay );
156 
159  virtual void setBuoyTextureOffset(DtArticulatedModelAgent* model,
160  const std::string& atlasFileName, const std::string& key);
161 
164  virtual void setBuoyDesignator(DtArticulatedModelAgent* model,
165  const std::string& atlasFileName, const std::string& designator);
166 
169  void slot_featureToBeDeleted( const std::string& resgistrant,
170  DtUniqueID featureId );
171 
175  void slot_dateChanged();
176 
179  void readModelDefParam(DtModelDefinition& modelDef,
180  const std::string& paramName, bool& resultOut);
181  void readModelDefParam(DtModelDefinition& modelDef,
182  const std::string& paramName, float& resultOut);
183  void readModelDefParam(DtModelDefinition& modelDef,
184  const std::string& paramName, std::string& resultOut);
186 
187  protected:
188 
193  std::string myBuoyName;
194  std::string myFeatureClass; // The style this class registered for
195  std::string myRegistrantName; // the name this creator was registered with
197 
199  {
200  std::string myFeatureString;
201  std::string myBuoyDesignator;
205  std::string myBuoyName;
208  int myEndDay;
210  };
211 
212  typedef boost::unordered_map<DtUniqueID, SeasonalBuoyRecord> SeasonalBuoyMap;
213 
214  // Buoys with non-null PERSTA/PEREND attributes get an entry on this map
216 
218 
219  };
220 
224  {
225 
226  public:
228  static DtBuoyBeaconFeatureBuilderCreator& instance( DtDe& de );
229 
231  static void registerInstance( DtDe& de,
232  DtBuoyBeaconFeatureBuilderCreator* anInstance );
233 
235  virtual DtBuoyBeaconFeatureBuilder* create( DtDe& de,
236  const std::string& registrant, DtBuoyBeaconModelStringParser& parser,
237  DtTextureAtlasIndexParser& atlasParser,
238  const std::string& featureClass );
239  };
240 }
241 
Virtual base class.
Definition: DtVirtualBaseClass.h:19
bool myCurrentState
Definition: DtBuoyBeaconFeatureBuilder.h:209
DtTextureAtlasIndexParser & myBuoyTextureAtlasIndexParser
Definition: DtBuoyBeaconFeatureBuilder.h:191
std::string myFeatureString
Definition: DtBuoyBeaconFeatureBuilder.h:200
DtBuoyBeaconFeatureBuilder implements a DtStreamedFeatureCreator for buoys.
Definition: DtBuoyBeaconFeatureBuilder.h:39
int myEndDay
Definition: DtBuoyBeaconFeatureBuilder.h:208
DtVector myStartingPosition
Definition: DtBuoyBeaconFeatureBuilder.h:206
SeasonalBuoyMap mySeasonalBuoyMap
Definition: DtBuoyBeaconFeatureBuilder.h:215
Definition: DtTextureAtlasIndexParser.h:23
std::string myFeatureClass
Definition: DtBuoyBeaconFeatureBuilder.h:194
Contains the DtStreamedFeatureCreator class declaration.
std::string myBuoyName
Definition: DtBuoyBeaconFeatureBuilder.h:205
A model definition Interaction any number of named parameters, and also can be used to store cached d...
Definition: DtModelDefinition.h:38
int myStartDay
Definition: DtBuoyBeaconFeatureBuilder.h:207
Contains the DtStreamedFeatureManager class declaration.
std::string my2dUnlightedModelDefinitionName
Definition: DtBuoyBeaconFeatureBuilder.h:204
DtDe & myDe
Definition: DtBuoyBeaconFeatureBuilder.h:189
std::string my2dLightedModelDefinitionName
Definition: DtBuoyBeaconFeatureBuilder.h:203
DtBuoyBeaconFeatureBuilder creator.
Definition: DtBuoyBeaconFeatureBuilder.h:223
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
std::string myRegistrantName
Definition: DtBuoyBeaconFeatureBuilder.h:195
Contains makVrv::DtTextureAtlasIndexParser class.
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
The DtBuoyBeaconModelStringParser parses the buoy attributes found in the strings used by streamed bu...
Definition: DtBuoyBeaconModelStringParser.h:56
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
DtBuoyBeaconModelStringParser & myBuoyMarkerStringParser
Definition: DtBuoyBeaconFeatureBuilder.h:190
DtSignalConnectionManager myConnections
Definition: DtBuoyBeaconFeatureBuilder.h:217
Base class to provide boost signal/slot management.
DtStreamedFeatureCreator is the base class that all feature-specific feature creators to be informed ...
Definition: DtStreamedFeatureCreator.h:29
std::string myModelDefinitionName
Definition: DtBuoyBeaconFeatureBuilder.h:202
Definition: DtBuoyBeaconFeatureBuilder.h:198
boost::unordered_map< DtUniqueID, SeasonalBuoyRecord > SeasonalBuoyMap
Definition: DtBuoyBeaconFeatureBuilder.h:212
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::string myBuoyDesignator
Definition: DtBuoyBeaconFeatureBuilder.h:201
int myCurrentDayOfTheYear
Definition: DtBuoyBeaconFeatureBuilder.h:196
std::string myBuoyName
std::string myAtlasTextureName;
Definition: DtBuoyBeaconFeatureBuilder.h:193
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)