All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Module.cpp
Go to the documentation of this file.
1 /* Copyright (C) 2008-2013 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 "../common/Logger.h"
28 #include "../common/TerraLib.h"
29 #include "../common/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 // it initializes the Translator support for the TerraLib Vector Geometry Model
56 }
57 
59 {
61 }
62 
64 {
65 // it loads the geometry type id map
67 
68 #if TE_USE_GEOS
69 // it initializes the GEOS Geometry Factory
70  te::gm::GEOSGeometryFactory::initialize();
71 #endif
72 
73 // registering data type converters
78 
84 
85  TE_LOG_TRACE(TR_GEOM("TerraLib Vector Geometry module Initialized!"));
86 }
87 
89 {
90 #if TE_USE_GEOS
91 // it finalizes the GEOS Geometry Factory
92  te::gm::GEOSGeometryFactory::finalize();
93 #endif
94 
100 
101  TE_LOG_TRACE(TR_GEOM("TerraLib Vector Geometry module Finalized!"));
102 }
103 
104 
static void finalize()
Finalize the factory.
This internal structure is used to model the basic information about a TerraLib module.
Definition: TerraLib.h:97
2D RST Geometric transformation factory.
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.
te::dt::AbstractData * GeometryToByteArrayConverter(te::dt::AbstractData *d)
It converts a Geometry data value to a ByteArray data value.
#define TR_GEOM(message)
It marks a string in order to get translated. This is a special mark used in the Vector Geometry modu...
Definition: Config.h:58
const te::at::Module & sm_module
This is a helper function that will be automatically called when the TerraLib Annotation Text module ...
Definition: Module.cpp:53
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
This singleton defines the TerraLib Vector Geometry module entry.
Definition: Module.h:41
#define TE_LOG_TRACE(msg)
Use this tag in order to log a message to a specified logger with the TRACE level.
Definition: Config.h:418
static void initialize()
This is the startup function for the TerraLib Geometry module.
Definition: Module.cpp:63
static void initialize()
Initialize the factory.
static void initialize()
Initialize the factory.
static void finalize()
This is the cleanup function for the TerraLib Geometry module.
Definition: Module.cpp:88
te::dt::AbstractData * GeometryToStringConverter(te::dt::AbstractData *d)
It converts a Geometry data value to a String data value.
void remove(const std::string &moduleName)
It removes the module entry identified by the given name.
Definition: TerraLib.cpp:101
static void initialize()
Initialize the factory.
2D Second Degree Polynomial Geometric transformation factory.
static void finalize()
Finalize the factory.
te::dt::AbstractData * ByteArrayToGeometryConverter(te::dt::AbstractData *d)
It converts a ByteArray data value to a Geometry data value.
#define TE_ADD_TEXT_DOMAIN(domain, domaindir, codeset)
It adds the given text domain located at domain-dir with the given codeset to the multilingual system...
Definition: Config.h:118
#define TE_GEOMETRY_MODULE_NAME
Definition: Config.h:32
static void initialize()
Initialize the factory.
2D Third Degree Polynomial Geometric transformation factory.
static void finalize()
Finalize the factory.
A set of function that convert a Geometry type to other types and vice-versa.
This singleton defines the TerraLib Vector Geometry module entry.
Module()
The singleton constructor is not callable outside the class.
Definition: Module.cpp:44
2D Affine Geometric transformation factory.
The global factory used by TerraLib in order to create GEOS geometries.
static Module & getInstance()
It returns a reference to the singleton instance.
2D Projective Geometric transformation factory.
static void loadGeomTypeId()
It loads the internal MAP of geometry type names to geometry type ids.
Definition: Geometry.cpp:558
void add(const Module &m)
It registers the module in the TerraLib Platform.
Definition: TerraLib.cpp:95
#define TE_GEOM_TEXT_DOMAIN
It contains the name of the text domain used in the translation of messages in TerraLib Vector Geomet...
Definition: Config.h:44
#define TE_GEOM_TEXT_DOMAIN_DIR
Definition: Config.h:51