src/terralib/geometry/Module.cpp
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file Module.cpp
22 
23  \brief This singleton defines the TerraLib Vector Geometry module entry.
24 */
25 
26 // TerraLib
27 #include "../core/logger/Logger.h"
28 #include "../common/TerraLib.h"
29 #include "../core/translator/Translator.h"
30 #include "../datatype/DataConverterManager.h"
31 #include "../datatype/Enums.h"
32 #include "Geometry.h"
33 #include "GeometryConverters.h"
34 #include "GEOSGeometryFactory.h"
35 #include "Module.h"
36 #include "AffineGTFactory.h"
37 #include "ProjectiveGTFactory.h"
38 #include "RSTGTFactory.h"
41 
43 
45 {
49  };
50 
51 // initialize TerraLib singleton
53 }
54 
56 {
58 }
59 
61 {
62 // it loads the geometry type id map
64 
65 #ifdef TERRALIB_GEOS_ENABLED
66 // it initializes the GEOS Geometry Factory
67  te::gm::GEOSGeometryFactory::initialize();
68 #endif
69 
70 // registering data type converters
75 
81 
82  TE_LOG_TRACE(TE_TR("TerraLib Vector Geometry module Initialized!"));
83 }
84 
86 {
87 #ifdef TERRALIB_GEOS_ENABLED
88 // it finalizes the GEOS Geometry Factory
89  te::gm::GEOSGeometryFactory::finalize();
90 #endif
91 
97 
98  TE_LOG_TRACE(TE_TR("TerraLib Vector Geometry module Finalized!"));
99 }
100 
101 
A set of function that convert a Geometry type to other types and vice-versa.
static void initialize()
Initialize the factory.
The global factory used by TerraLib in order to create GEOS geometries.
static void loadGeomTypeId()
It loads the internal MAP of geometry type names to geometry type ids.
static void finalize()
Finalize the factory.
te::dt::AbstractData * GeometryToByteArrayConverter(te::dt::AbstractData *d)
It converts a Geometry data value to a ByteArray data value.
This singleton defines the TerraLib Vector Geometry module entry.
static void finalize()
Finalize the factory.
const te::gm::Module & sm_module
#define TE_TR(message)
It marks a string in order to get translated.
Definition: Translator.h:242
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
2D Projective Geometric transformation factory.
2D Third Degree Polynomial Geometric transformation factory.
2D RST Geometric transformation factory.
te::dt::AbstractData * GeometryToStringConverter(te::dt::AbstractData *d)
It converts a Geometry data value to a String data value.
te::dt::AbstractData * ByteArrayToGeometryConverter(te::dt::AbstractData *d)
It converts a ByteArray data value to a Geometry data value.
static Module & getInstance()
It returns a reference to the singleton instance.
void remove(const std::string &moduleName)
It removes the module entry identified by the given name.
void add(const Module &m)
It registers the module in the TerraLib Platform.
#define TE_GEOMETRY_MODULE_NAME
This singleton defines the TerraLib Vector Geometry module entry.
2D Second Degree Polynomial Geometric transformation factory.
static void finalize()
This is the cleanup function for the TerraLib Geometry module.
static void initialize()
Initialize the factory.
#define TE_LOG_TRACE(message)
Use this tag in order to log a message to the TerraLib default logger with the TRACE level...
Definition: Logger.h:293
static void initialize()
Initialize the factory.
This internal structure is used to model the basic information about a TerraLib module.
2D Affine Geometric transformation factory.
Module()
The singleton constructor is not callable outside the class.
static void initialize()
This is the startup function for the TerraLib Geometry module.
te::dt::AbstractData * StringToGeometryConverter(te::dt::AbstractData *d)
It converts a String data value to a Geometry data value.
static void initialize()
Initialize the factory.
static void finalize()
Finalize the factory.
static void initialize()
Initialize the factory.