Utils.h
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 terralib/vp/Utils.h
22 
23  \brief Utility functions for Vector Processing.
24 */
25 
26 #ifndef __TERRALIB_VP_INTERNAL_UTILS_H
27 #define __TERRALIB_VP_INTERNAL_UTILS_H
28 
29 // Terralib
30 #include "../dataaccess/dataset/DataSet.h"
31 #include "../dataaccess/dataset/DataSetType.h"
32 #include "../dataaccess/datasource/DataSource.h"
33 
34 #include "../geometry/Geometry.h"
35 #include "../geometry/GeometryCollection.h"
36 #include "../geometry/Utils.h"
37 
38 #include "../maptools/AbstractLayer.h"
39 
40 #include "../memory/DataSet.h"
41 #include "../memory/DataSetItem.h"
42 
43 #include "../sam/rtree.h"
44 
45 #include "Config.h"
46 
47 //STL
48 #include <map>
49 #include <string>
50 
51 namespace te
52 {
53  namespace vp
54  {
55  class AlgorithmParams;
56 
57  enum Strategy
58  {
61  };
62 
63  TEVPEXPORT std::auto_ptr<te::gm::Geometry> GetGeometryUnion(const std::vector<te::gm::Geometry*>& geomVec);
64 
65  /*!
66  \brief It returns the union of a geometry vector.
67 
68  \param items Vector of itens that represents a group.
69 
70  \return Union of the geometry.
71  */
72  TEVPEXPORT te::gm::Geometry* GetGeometryUnion(const std::vector<te::mem::DataSetItem*>& items, size_t geomIdx, te::gm::GeomType outGeoType);
73 
74  TEVPEXPORT te::gm::Geometry* GetGeometryUnion(const std::vector<te::mem::DataSetItem*>& items, size_t geomIdx);
75 
77 
78  TEVPEXPORT std::string GetSimpleTableName(std::string fullName);
79 
80  TEVPEXPORT std::auto_ptr<te::da::DataSet> PrepareAdd(te::da::DataSet* ds, te::da::DataSetType* dt);
81 
82  TEVPEXPORT void Save(te::da::DataSource* source, te::da::DataSet* result, te::da::DataSetType* outDsType);
83 
85 
87 
89 
91 
92  TEVPEXPORT void ValidateAlgorithmParams(AlgorithmParams* mainParams, Strategy st);
93 
95 
97 
98  TEVPEXPORT std::string GetDistinctName(const std::string& name, std::vector<std::string> names, std::size_t maxSize = 0);
99 
100  TEVPEXPORT bool IsPointType(const te::gm::GeomType& geomType);
101 
102  TEVPEXPORT bool IsLineStringType(const te::gm::GeomType& geomType);
103 
104  TEVPEXPORT bool IsPolygonType(const te::gm::GeomType& geomType);
105 
106  } // end namespace vp
107 } // end namespace te
108 
109 #endif // __TERRALIB_VP_INTERNAL_UTILS_H
#define TEVPEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:61
GeomType
Each enumerated type is compatible with a Well-known Binary (WKB) type code.
Definition: Enums.h:41
TEVPEXPORT te::gm::GeomType GetSimpleType(te::gm::GeomType geomType)
TEVPEXPORT te::da::DataSourcePtr CreateOGRDataSource(std::string repository)
boost::shared_ptr< DataSource > DataSourcePtr
Definition: DataSource.h:1438
A class that represents an R-tree.
Definition: Index.h:56
A class that models the description of a dataset.
Definition: DataSetType.h:72
TEVPEXPORT void ValidateAlgorithmParams(AlgorithmParams *mainParams, Strategy st)
TEVPEXPORT te::gm::Geometry * SetGeomAsMulti(te::gm::Geometry *geom)
TEVPEXPORT void Save(te::da::DataSource *source, te::da::DataSet *result, te::da::DataSetType *outDsType)
An abstract class for data providers like a DBMS, Web Services or a regular file. ...
Definition: DataSource.h:119
TEVPEXPORT void SplitGeometryCollection(te::gm::GeometryCollection *geomIn, te::gm::GeometryCollection *gcOut)
TEVPEXPORT bool IsLineStringType(const te::gm::GeomType &geomType)
TEVPEXPORT std::string GetDistinctName(const std::string &name, std::vector< std::string > names, std::size_t maxSize=0)
URI C++ Library.
TEVPEXPORT std::auto_ptr< te::gm::Geometry > GetGeometryUnion(const std::vector< te::gm::Geometry * > &geomVec)
TEVPEXPORT std::string GetSimpleTableName(std::string fullName)
TEVPEXPORT std::auto_ptr< te::da::DataSet > PrepareAdd(te::da::DataSet *ds, te::da::DataSetType *dt)
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
Definition: Geometry.h:74
TEVPEXPORT bool IsPolygonType(const te::gm::GeomType &geomType)
TEVPEXPORT te::gm::GeomType GetMultiType(te::gm::GeomType geomType)
A dataset is the unit of information manipulated by the data access module of TerraLib.
Definition: DataSet.h:112
TEVPEXPORT bool IsPointType(const te::gm::GeomType &geomType)
TEVPEXPORT bool IsMultiType(te::gm::GeomType geomType)
Configuration flags for the Terrralib Vector Processing module.
TEVPEXPORT te::sam::rtree::Index< size_t, 8 > * GetRtree(te::da::DataSet *data)
It is a collection of other geometric objects.
Strategy
Definition: Utils.h:57