Hugintrunk  0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ImageGraph.h
Go to the documentation of this file.
1 // -*- c-basic-offset: 4 -*-
7 /* This is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This software is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public
18  * License along with this software. If not, see
19  * <http://www.gnu.org/licenses/>.
20  *
21  */
22 
23 #ifndef _PANODATA_IMAGEGRAPH_H
24 #define _PANODATA_IMAGEGRAPH_H
25 
26 #include <hugin_shared.h>
27 
28 #include <panodata/PanoramaData.h>
30 
31 namespace HuginGraph
32 {
33 
36 {
37 public:
38  virtual void Visit(const size_t vertex, const HuginBase::UIntSet& visitedNeighbors, const HuginBase::UIntSet& unvisitedNeighbors) = 0;
39 };
40 
45 {
46 public:
48  typedef std::vector<HuginBase::UIntSet> GraphList;
50  typedef std::vector<HuginBase::UIntSet> Components;
52  ImageGraph(const HuginBase::PanoramaData& pano, bool ignoreLinkedPosition = false);
59  Components GetComponents();
65  bool IsConnected();
71  void VisitAllImages(const size_t startImg, bool forceAllComponents, BreadthFirstSearchVisitor* visitor);
72 private:
74 }; // class ImageGraph
75 
76 } // namespace HuginGraph
77 
78 #endif // _PANODATA_IMAGEGRAPH_H
std::vector< HuginBase::UIntSet > Components
stores the components of the graph
Definition: ImageGraph.h:50
std::set< unsigned int > UIntSet
Definition: PanoramaData.h:51
std::vector< HuginBase::UIntSet > GraphList
stores adjacency list for graph
Definition: ImageGraph.h:48
Model for a panorama.
Definition: PanoramaData.h:81
#define IMPEX
Definition: hugin_shared.h:39
definitions of classes to calculate overlap between different images
class for calculating overlap of images
abstract base functor for breadth first search in ImageGraph
Definition: ImageGraph.h:35
class to work with images graphs created from a HuginBase::Panorama class it creates a graph based on...
Definition: ImageGraph.h:44