VR-Forces 4.6 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 

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)