MinimumSpanningTree.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/sa/core/MinimumSpanningTree.h
22 
23  \brief This file contains a class that represents the Minimum Spanning Tree operation.
24 
25  \reference Boost BGL.
26 */
27 
28 #ifndef __TERRALIB_SA_INTERNAL_MINIMUMSPANNINGTREE_H
29 #define __TERRALIB_SA_INTERNAL_MINIMUMSPANNINGTREE_H
30 
31 // Terralib Includes
32 #include "../Config.h"
33 
34 // STL Includes
35 #include <memory>
36 
37 namespace te
38 {
39  //forward declarations
40  namespace graph { class AbstractGraph; }
41 
42  namespace sa
43  {
44  /*!
45  \class SkaterOperation
46 
47  \brief Class used to execute the skater operations
48 
49  */
51  {
52  public:
53 
54  /*! \brief Default constructor. */
56 
57  /*! \brief Virtual destructor. */
59 
60  public:
61 
62  /*!
63  \brief Function to execute the kruskal operation.
64 
65  \param weightAttrIdx The edge weight attribute index.
66 
67  \return Pointer to AbstractGraph that represents the Minimum Spanning Tree from input graph.
68  */
69  te::graph::AbstractGraph* kruskal(int weightAttrIdx);
70 
71  protected:
72 
73  /*! \brief Function to create a empty graph with vertex attributes from gpm graph. */
74  te::graph::AbstractGraph* createGraph();
75 
76  protected:
77 
78  te::graph::AbstractGraph* m_inputGraph; //!< Pointer to input graph.
79 
80  };
81  } // end namespace sa
82 } // end namespace te
83 
84 #endif //__TERRALIB_SA_INTERNAL_MINIMUMSPANNINGTREE_H
Abstract class used to define the main functions of graph struct. All graph implementations must used...
Definition: AbstractGraph.h:55
URI C++ Library.
#define TESAEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:133
te::graph::AbstractGraph * m_inputGraph
Pointer to input graph.