Fire Core  8.0.0.alpha
GIS framework per tutti gli usi
 Tutto Classi Namespace Funzioni Variabili Ridefinizioni di tipo (typedef) Tipi enumerati (enum) Valori del tipo enumerato Friend
GeometryFactory.hpp
1 // Copyright 2015 GEOSYSTEMS SRL
2 // All Rights Reserved.
3 
4 #ifndef FIRE_GEAR_GEOM_GEOMETRYFACTORY_HPP_INCLUDED
5 #define FIRE_GEAR_GEOM_GEOMETRYFACTORY_HPP_INCLUDED
6 
7 #include <boost/shared_ptr.hpp>
8 
9 #include <geos/geom/GeometryFactory.h>
10 
11 #include <map>
12 #include <utility>
13 #include <string>
14 
15 #include "fire/export.hpp"
16 
17 namespace fire {
18 namespace gear {
19 namespace geom {
20 class PrecisionModel;
21 } // namespace geom
22 } // namespace gear
23 } // namespace fire
24 
31 namespace fire {
38 namespace gear {
45 namespace geom {
52 class FIRE_ENGINE_DLL GeometryFactory {
53 friend class GeometryConverter;
54  private:
61  typedef std::map< std::string, GeometryFactory* > typeGeomMap;
68  typedef std::pair< std::string, GeometryFactory* > typeGeoMapPair;
75  static std::string m_GeomKey;
82  static const std::string m_strKeyDefault;
89  static typeGeomMap geometryFactoriesMap;
96  static typeGeoMapPair geometryFactoryPair;
103  boost::shared_ptr< geos::geom::GeometryFactory > geosGeometryFactory;
120  GeometryFactory(const PrecisionModel& precisionModel, int srid);
127  ~GeometryFactory();
128 
129  public:
151  static GeometryFactory* instance(const PrecisionModel& precisionModel, int srid);
163  static int getGeometryFactoriesCount();
175  static std::string toString();
187  static void destroyGeometryFactoryAt(std::size_t index);
204  static int getGeometryFactoryIndex(const std::string& value);
211  static void destroyGeometryFactory();
212 };
213 } // namespace geom
214 } // namespace gear
215 } // namespace fire
216 
217 #endif
Definition: PrecisionModel.hpp:50
Definition: GeometryConverter.hpp:67
Definition: GeometryFactory.hpp:52