SiGraph: sulcal graphs


sgiterator.h
Go to the documentation of this file.
1
2#ifndef SI_GRAPH_SGITERATOR_H
3#define SI_GRAPH_SGITERATOR_H
4
5#include <si/graph/cgraph.h>
6#include <list>
7
8
9namespace sigraph
10{
11
15{
16public:
18 SGIterator( const std::list< const std::set< Vertex *> * >::const_iterator
19 & it )
20 : _iter( it ) {}
23 { if( this != &i ) { _iter = i._iter; } return( *this ); }
24 const std::set<Vertex *> * operator * () const
25 { return( *_iter ); }
26 bool operator == ( const SGIterator & i ) const
27 { return( _iter == i._iter ); }
28 bool operator != ( const SGIterator & i ) const
29 { return( !operator ==( i ) ); }
31 { ++_iter; return( *this ); }
32
33private:
34 std::list< const std::set< Vertex *> * >::const_iterator _iter;
35};
36
37
41{
42public:
43 typedef std::list< const std::set< Vertex *> * > datatype;
46
47 SGProvider( const CGraph & gr ) : _graph( gr ) {}
48 virtual ~SGProvider();
49
52
54 { return( SGIterator( _data.begin() ) ); }
55
57 { return( SGIterator( _data.end() ) ); }
58
59 unsigned size() const { return( _data.size() ); }
61
64
67 virtual void refresh() = 0;
69
70protected:
72 const CGraph & _graph;
73
74private:
75};
76
77
78
82class RandComp : public std::binary_function< const std::set<Vertex *> *,
83 const std::set<Vertex *> *, bool >
84{
85public:
86 bool operator () ( const std::set<Vertex *> *s1,
87 const std::set<Vertex *> *s2 );
88 void reset();
89
90private:
92 std::map< const std::set<Vertex *> *, float > dat;
93};
94
95
96
100{
101public:
103 VertexProvider( const CGraph & gr ) : SGProvider( gr ) {}
105
108
111 virtual void refresh();
113
114protected:
116 virtual void init();
118 virtual void cleanup();
119
120private:
121};
122
123
127{
128public:
130 VertexCliqueProvider( const CGraph & gr ) : SGProvider( gr ) {}
132
135
138 virtual void refresh();
140
141protected:
143 virtual void init();
144
145private:
146};
147
148}
149
150#endif
151
const T * const_iterator
Graphes avec étiquettes et gestion de cliques (classe abstraite).
Definition cgraph.h:37
"Functor" de comparaison aléatoire.
Definition sgiterator.h:84
bool operator()(const std::set< Vertex * > *s1, const std::set< Vertex * > *s2)
Itérateur de sous-graphe.
Definition sgiterator.h:15
bool operator!=(const SGIterator &i) const
Definition sgiterator.h:28
SGIterator & operator=(const SGIterator &i)
Definition sgiterator.h:22
SGIterator & operator++()
Definition sgiterator.h:30
SGIterator(const std::list< const std::set< Vertex * > * >::const_iterator &it)
Definition sgiterator.h:18
const std::set< Vertex * > * operator*() const
Definition sgiterator.h:24
bool operator==(const SGIterator &i) const
Definition sgiterator.h:26
const CGraph & _graph
Definition sgiterator.h:72
virtual void refresh()=0
A appeler à chaque fois qu'on veut repréparer les données (par ex.
SGProvider(const CGraph &gr)
Definition sgiterator.h:47
SGIterator begin() const
Produit des pointeurs d'objets alloués avec new, qu'il faut effacer.
Definition sgiterator.h:53
std::list< const std::set< Vertex * > * > datatype
Definition sgiterator.h:43
unsigned size() const
Nombre d'éléments.
Definition sgiterator.h:59
SGIterator end() const
Idem.
Definition sgiterator.h:56
SGIterator iterator
Definition sgiterator.h:44
SGIterator const_iterator
Definition sgiterator.h:45
virtual void refresh()
A appeler à chaque fois qu'on veut repréparer les données (par ex.
virtual void init()
Crée la liste, appelé par refresh au besoin.
VertexCliqueProvider(const CGraph &gr)
Le constructeur ne crée pas les données: appeler refresh() !
Definition sgiterator.h:130
VertexProvider(const CGraph &gr)
Le constructeur ne crée pas les données: appeler refresh() !
Definition sgiterator.h:103
virtual void refresh()
A appeler à chaque fois qu'on veut repréparer les données (par ex.
virtual void cleanup()
Détruit les sets dans les listes (bref: fait le ménage)
virtual void init()
Crée la liste, appelé par refresh au besoin.