Loading...
Searching...
No Matches
BoxLoaderStrategy.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 BoxLoaderStrategy.h
22
23 \brief This class implements the main functions necessary to
24 save and load the graph data and metadata information
25 using as strategy a bounding box to create a region
26 that defines a group of elements.
27*/
28
29#ifndef __TERRALIB_GRAPH_INTERNAL_BOXLOADERSTRATEGY_H
30#define __TERRALIB_GRAPH_INTERNAL_BOXLOADERSTRATEGY_H
31
32// Terralib Includes
33#include "../Config.h"
34#include "../Enums.h"
36
37// STL Includes
38#include <string>
39
40namespace te
41{
42 // Forward declarations
43 namespace da
44 {
45 class DataSet;
46 }
47
48 namespace gm
49 {
50 class Envelope;
51 class GeometryProperty;
52 class Point;
53 }
54
55 namespace graph
56 {
57 //forward declarations
58 class AbstractGraph;
59 class GraphCache;
60 class GraphData;
61 class GraphMetadata;
62
63 /*!
64 \class BoxLoaderStrategy
65
66 \brief This class implements the main functions necessary to
67 save and load the graph data and metadata information
68 using as strategy a bounding box to create a region
69 that defines a group of elements.
70
71 \sa AbstractGraphLoaderStrategy
72 */
73
75 {
76 public:
77
78 /*! \brief Default constructor. */
80
81 /*! \brief Default destructor. */
83
84 /** @name Database Box Graph Loader Strategy Methods
85 * Method used to manager a graph data
86 */
87 //@{
88
89 /*!
90 \brief Functio used to load a group of vertex elements given a base element
91
92 \param vertexId Attribute used to identify the base element
93
94 \param g Pointer to a graph, parent of this element
95
96 \param gc This is a optional attribute, if present the cache will be check if the already been loaded
97
98 */
99 virtual void loadDataByVertexId(int vertexId, te::graph::AbstractGraph* g, te::graph::GraphCache* gc = 0);
100
101 /*!
102 \brief Functio used to load a group of edges elements given a base element
103
104 \param edgeId Attribute used to identify the base element
105
106 \param g Pointer to a graph, parent of this element
107
108 \param gc This is a optional attribute, if present the cache will be check if the already been loaded
109
110 */
112
113 //@}
114
115 protected:
116
117 /*!
118 \brief Generate a box with p as center. The new box will have n% of the total graph height and n% of total graph width
119
120 \param p Terralib object that defines a geometric point.
121
122 \param tableName Attribute used to define the table name that contains the graph elements
123
124 \return Terralib object that defines geometric region.
125 */
126 te::gm::Envelope* calculateBox(te::gm::Point* p, std::string tableName);
127 };
128 } // end namespace graph
129} // end namespace te
130
131#endif // __TERRALIB_GRAPH_INTERNAL_BOXLOADERSTRATEGY_H
This class define the main functions necessary to save and load the graph data and metadata informati...
A dataset is the unit of information manipulated by the data access module of TerraLib.
Definition DataSet.h:114
An Envelope defines a 2D rectangular region.
Definition Envelope.h:52
Geometric property.
A point with x and y coordinate values.
Definition Point.h:51
AbstractGraphLoaderStrategy(te::graph::GraphMetadata *metadata)
Default constructor.
Abstract class used to define the main functions of graph struct. All graph implementations must used...
BoxLoaderStrategy(te::graph::GraphMetadata *metadata)
Default constructor.
virtual void loadDataByVertexId(int vertexId, te::graph::AbstractGraph *g, te::graph::GraphCache *gc=0)
Functio used to load a group of vertex elements given a base element.
virtual ~BoxLoaderStrategy()
Default destructor.
virtual void loadDataByEdgeId(int edgeId, te::graph::AbstractGraph *g, te::graph::GraphCache *gc=0)
Functio used to load a group of edges elements given a base element.
te::gm::Envelope * calculateBox(te::gm::Point *p, std::string tableName)
Generate a box with p as center. The new box will have n% of the total graph height and n% of total g...
Class used to manager the graph data elements. This class uses a cache policy to control the elements...
Definition GraphCache.h:61
This class define a important struct used to group a map of vertex and edges. A flag is used to indic...
Definition GraphData.h:56
Class used to define the graph metadata informations.
General enumerations.
Namespace for the DataAccess API of TerraLib.
Definition DataSet.h:43
Namespace for the Vector Geometry module of TerraLib.
Definition DataSource.h:46
TerraLib.
Configuration flags for the Graph module of TerraLib.
#define TEGRAPHEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition Config.h:178