VR-Forces 5.0.3 Developer's Guide
 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) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCore/vrvCore.h>
13 
18 
20 
21 #include <matrix/vlVector.h>
22 
23 #include <string>
24 
25 namespace makVrv
26 {
27  class DtAgentManagerInterface;
28  class DtDe;
29  class DtBuoyBeaconModelStringParser;
30  class DtArticulatedModelAgent;
31  class DtModelDefinition;
32  class DtIntersector;
33  class DtCoordinateConverter;
34 
37 
41 
43  template <>
44  inline const char* creatorTypeName<DtBuoyBeaconFeatureBuilder>(void) { return "DtBuoyBeaconFeatureBuilderCreator"; }
45 
54  {
55  public:
57 
60 
63 
65  virtual ~DtBuoyBeaconFeatureBuilder();
66 
91  DtUniqueID create(
92  DtDe& de,
93  const std::string& registrantName,
94  const std::string& featureStyleName,
95  const std::string& strFeatureName,
96  const DtVector& vPosition,
97  double scale,
98  DtVector minBound,
99  DtVector maxBound);
100 
101  protected:
102 
110  DtBuoyBeaconFeatureBuilder( DtDe& de, const std::string& registrantName,
112  const std::string& featureClass );
113 
128  virtual void determineStationaryHeight( DtVector& buoyOrBeaconPos, double modelHeightAboveOrigin );
129 
137  std::string buildModelDefinition( const std::string& markerName );
138 
139  void build2DModelDefinitions( const std::string& markerName,
140  std::string& modelDef2dUnlighted, std::string& modelDef2dLighted );
141 
151  std::string parseAndBuild( const std::string& markerStr );
152 
153  virtual void createAndAddBuoy( DtUniqueID elementId,
154  const std::string& modelDefName, const std::string& modelDef2dUnlighted,
155  std::string& modelDef2dLighted, const std::string& buoyName,
156  const DtVector& vPosition, const std::string& designator );
157 
161  int s57SeasonDateToDayInYear( const std::string& seasonDate );
162 
165  int calcCurrentDayOfTheYear();
166 
169  static bool checkSeasonalState( int seasonStart, int seasonEnd, int currentDay );
170 
173  virtual void setBuoyTextureOffset(DtArticulatedModelAgent* model,
174  const std::string& atlasFileName, const std::string& key);
175 
178  virtual void setBuoyDesignator(DtArticulatedModelAgent* model,
179  const std::string& atlasFileName, const std::string& designator);
180 
183  void slot_featureToBeDeleted( const std::string& resgistrant,
184  DtUniqueID featureId );
185 
189  void slot_dateChanged();
190 
193  void readModelDefParam(const DtModelDefinition& modelDef,
194  const std::string& paramName, bool& resultOut);
195  void readModelDefParam(const DtModelDefinition& modelDef,
196  const std::string& paramName, float& resultOut);
197  void readModelDefParam(const DtModelDefinition& modelDef,
198  const std::string& paramName, std::string& resultOut);
200 
202  virtual void slot_coordinateSystemChanged();
203 
204  protected:
205 
210  std::string myBuoyName;
211  std::string myFeatureClass; // The style this class registered for
212  std::string myRegistrantName; // the name this creator was registered with
214 
216  {
217  std::string myFeatureString;
218  std::string myBuoyDesignator;
222  std::string myBuoyName;
225  int myEndDay;
227  };
228 
229  typedef boost::unordered_map<DtUniqueID, SeasonalBuoyRecord> SeasonalBuoyMap;
230 
231  // Buoys with non-null PERSTA/PEREND attributes get an entry on this map
233 
235 
236  DtIntersector* myIntersector = nullptr;
237 
240  DtCoordinateConverter* myCoordinateConverter = nullptr;
241  };
242 }
243 
DtCoordinateConverter is the base class for &#39;local (cig) to geocentric&#39; converters.
Definition: DtCoordinateConverter.h:25
DtIntersector is an abstract class that provides the interface for requesting intersections with the ...
Definition: DtIntersector.h:25
bool myCurrentState
Definition: DtBuoyBeaconFeatureBuilder.h:226
DtTextureAtlasIndexParser & myBuoyTextureAtlasIndexParser
Definition: DtBuoyBeaconFeatureBuilder.h:208
std::string myFeatureString
Definition: DtBuoyBeaconFeatureBuilder.h:217
DtBuoyBeaconFeatureBuilder implements a DtStreamedFeatureCreator for buoys. It reads configuration fi...
Definition: DtBuoyBeaconFeatureBuilder.h:53
int myEndDay
Definition: DtBuoyBeaconFeatureBuilder.h:225
DtVector myStartingPosition
Definition: DtBuoyBeaconFeatureBuilder.h:223
SeasonalBuoyMap mySeasonalBuoyMap
Definition: DtBuoyBeaconFeatureBuilder.h:232
Definition: DtTextureAtlasIndexParser.h:23
std::string myFeatureClass
Definition: DtBuoyBeaconFeatureBuilder.h:211
Contains the DtStreamedFeatureCreator class declaration.
std::string myBuoyName
Definition: DtBuoyBeaconFeatureBuilder.h:222
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:224
Contains the DtStreamedFeatureManager class declaration.
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
std::string my2dUnlightedModelDefinitionName
Definition: DtBuoyBeaconFeatureBuilder.h:221
DtDe & myDe
Definition: DtBuoyBeaconFeatureBuilder.h:206
std::string my2dLightedModelDefinitionName
Definition: DtBuoyBeaconFeatureBuilder.h:220
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
std::string myRegistrantName
Definition: DtBuoyBeaconFeatureBuilder.h:212
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
DtBuoyBeaconModelStringParser & myBuoyMarkerStringParser
Definition: DtBuoyBeaconFeatureBuilder.h:207
DtSignalConnectionManager myConnections
Definition: DtBuoyBeaconFeatureBuilder.h:234
const char * creatorTypeName< DtBuoyBeaconFeatureBuilder >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtBuoyBeaconFeatureBuilder.h:44
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:219
Definition: DtBuoyBeaconFeatureBuilder.h:215
boost::unordered_map< DtUniqueID, SeasonalBuoyRecord > SeasonalBuoyMap
Definition: DtBuoyBeaconFeatureBuilder.h:229
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
std::string myBuoyDesignator
Definition: DtBuoyBeaconFeatureBuilder.h:218
int myCurrentDayOfTheYear
Definition: DtBuoyBeaconFeatureBuilder.h:213
std::string myBuoyName
std::string myAtlasTextureName;
Definition: DtBuoyBeaconFeatureBuilder.h:210
DtVirtualBaseClassCreator< DtBuoyBeaconFeatureBuilder, const std::string &, DtBuoyBeaconModelStringParser &, DtTextureAtlasIndexParser &, const std::string & > DtBuoyBeaconFeatureBuilderCreator
creator
Definition: DtBuoyBeaconFeatureBuilder.h:36
friend DtBuoyBeaconFeatureBuilderCreator
Definition: DtBuoyBeaconFeatureBuilder.h:56
Contains DLL export macros.

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)