VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtBuoyBeaconFeatureBuilder.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 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  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 
107  std::string buildModelDefinition( const std::string& markerName );
108 
109  void build2DModelDefinitions( const std::string& markerName,
110  std::string& modelDef2dUnlighted, std::string& modelDef2dLighted );
111 
121  std::string parseAndBuild( const std::string& markerStr );
122 
123  virtual void createAndAddBuoy( DtUniqueID elementId,
124  const std::string& modelDefName, const std::string& modelDef2dUnlighted,
125  std::string& modelDef2dLighted, const std::string& buoyName,
126  const DtVector& vPosition, const std::string& designator );
127 
131  int s57SeasonDateToDayInYear( const std::string& seasonDate );
132 
135  int calcCurrentDayOfTheYear();
136 
139  static bool checkSeasonalState( int seasonStart, int seasonEnd, int currentDay );
140 
143  virtual void setBuoyTextureOffset(DtArticulatedModelAgent* model,
144  const std::string& atlasFileName, const std::string& key);
145 
148  virtual void setBuoyDesignator(DtArticulatedModelAgent* model,
149  const std::string& atlasFileName, const std::string& designator);
150 
153  void slot_featureToBeDeleted( const std::string& resgistrant,
154  DtUniqueID featureId );
155 
159  void slot_dateChanged();
160 
163  void readModelDefParam(DtModelDefinition& modelDef,
164  const std::string& paramName, bool& resultOut);
165  void readModelDefParam(DtModelDefinition& modelDef,
166  const std::string& paramName, float& resultOut);
167  void readModelDefParam(DtModelDefinition& modelDef,
168  const std::string& paramName, std::string& resultOut);
170 
171  protected:
172 
177  std::string myBuoyName;
178  std::string myFeatureClass; // The style this class registered for
179  std::string myRegistrantName; // the name this creator was registered with
181 
183  {
184  std::string myFeatureString;
185  std::string myBuoyDesignator;
189  std::string myBuoyName;
192  int myEndDay;
194  };
195 
196  typedef boost::unordered_map<DtUniqueID, SeasonalBuoyRecord> SeasonalBuoyMap;
197 
198  // Buoys with non-null PERSTA/PEREND attributes get an entry on this map
200 
202 
203  };
204 
208  {
209 
210  public:
212  static DtBuoyBeaconFeatureBuilderCreator& instance( DtDe& de );
213 
215  static void registerInstance( DtDe& de,
216  DtBuoyBeaconFeatureBuilderCreator* anInstance );
217 
219  virtual DtBuoyBeaconFeatureBuilder* create( DtDe& de,
220  const std::string& registrant, DtBuoyBeaconModelStringParser& parser,
221  DtTextureAtlasIndexParser& atlasParser,
222  const std::string& featureClass );
223  };
224 }
225 

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)