Gudhi  1.2.0
 All Classes Functions Variables Typedefs Friends Groups Pages
Skeleton_blocker_complex_visitor.h
1 /* This file is part of the Gudhi Library. The Gudhi library
2  * (Geometric Understanding in Higher Dimensions) is a generic C++
3  * library for computational topology.
4  *
5  * Author(s): David Salinas
6  *
7  * Copyright (C) 2014 INRIA Sophia Antipolis-Mediterranee (France)
8  *
9  * This program is free software: you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation, either version 3 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program. If not, see <http://www.gnu.org/licenses/>.
21  */
22 #ifndef SKELETON_BLOCKER_SKELETON_BLOCKER_COMPLEX_VISITOR_H_
23 #define SKELETON_BLOCKER_SKELETON_BLOCKER_COMPLEX_VISITOR_H_
24 
25 #include <gudhi/Skeleton_blocker/Skeleton_blocker_simplex.h>
26 
27 namespace Gudhi {
28 
29 namespace skbl {
30 // todo rajouter les const
31 
36 template<typename Vertex_handle>
38  public:
40 
41  virtual void on_add_vertex(Vertex_handle) = 0;
42  virtual void on_remove_vertex(Vertex_handle) = 0;
43 
44  virtual void on_add_edge(Vertex_handle a, Vertex_handle b) = 0;
45  virtual void on_remove_edge(Vertex_handle a, Vertex_handle b) = 0;
46 
51  virtual void on_changed_edge(Vertex_handle a, Vertex_handle b) = 0;
52 
61  virtual void on_swaped_edge(Vertex_handle a, Vertex_handle b,
62  Vertex_handle x) = 0;
63  virtual void on_add_blocker(
65  virtual void on_delete_blocker(
67 };
68 
74 template<typename Vertex_handle>
76  Vertex_handle> {
77  public:
78  void on_add_vertex(Vertex_handle) {
79  }
80  void on_remove_vertex(Vertex_handle) {
81  }
82  void on_add_edge(Vertex_handle a, Vertex_handle b) {
83  }
84  void on_remove_edge(Vertex_handle a, Vertex_handle b) {
85  }
86  void on_changed_edge(Vertex_handle a, Vertex_handle b) {
87  }
88  void on_swaped_edge(Vertex_handle a, Vertex_handle b, Vertex_handle x) {
89  }
90  void on_add_blocker(const Skeleton_blocker_simplex<Vertex_handle>&) {
91  }
92  void on_delete_blocker(const Skeleton_blocker_simplex<Vertex_handle>*) {
93  }
94 };
95 
101 template<typename Vertex_handle>
103  Vertex_handle> {
104  public:
105  void on_add_vertex(Vertex_handle v) {
106  std::cerr << "on_add_vertex:" << v << std::endl;
107  }
108  void on_remove_vertex(Vertex_handle v) {
109  std::cerr << "on_remove_vertex:" << v << std::endl;
110  }
111  void on_add_edge(Vertex_handle a, Vertex_handle b) {
112  std::cerr << "on_add_edge:" << a << "," << b << std::endl;
113  }
114  void on_remove_edge(Vertex_handle a, Vertex_handle b) {
115  std::cerr << "on_remove_edge:" << a << "," << b << std::endl;
116  }
117  void on_changed_edge(Vertex_handle a, Vertex_handle b) {
118  std::cerr << "on_changed_edge:" << a << "," << b << std::endl;
119  }
120  void on_swaped_edge(Vertex_handle a, Vertex_handle b, Vertex_handle x) {
121  std::cerr << "on_swaped_edge:" << a << "," << b << "," << x << std::endl;
122  }
123  void on_add_blocker(const Skeleton_blocker_simplex<Vertex_handle>& b) {
124  std::cerr << "on_add_blocker:" << b << std::endl;
125  }
126  void on_delete_blocker(const Skeleton_blocker_simplex<Vertex_handle>* b) {
127  std::cerr << "on_delete_blocker:" << b << std::endl;
128  }
129 };
130 
131 } // namespace skbl
132 
133 } // namespace Gudhi
134 
135 #endif // SKELETON_BLOCKER_SKELETON_BLOCKER_COMPLEX_VISITOR_H_
virtual void on_swaped_edge(Vertex_handle a, Vertex_handle b, Vertex_handle x)=0
Called when performing an edge contraction when an edge bx is replaced by an edge ax (not already pre...
void on_changed_edge(Vertex_handle a, Vertex_handle b)
Called when an edge changes, during the contraction of an edge.
Definition: Skeleton_blocker_complex_visitor.h:86
A visitor that prints the visit information.
Definition: Skeleton_blocker_complex_visitor.h:102
A dummy visitor of a simplicial complex that does nothing.
Definition: Skeleton_blocker_complex_visitor.h:75
void on_swaped_edge(Vertex_handle a, Vertex_handle b, Vertex_handle x)
Called when performing an edge contraction when an edge bx is replaced by an edge ax (not already pre...
Definition: Skeleton_blocker_complex_visitor.h:88
virtual void on_changed_edge(Vertex_handle a, Vertex_handle b)=0
Called when an edge changes, during the contraction of an edge.
Abstract simplex used in Skeleton blockers data-structure.
Definition: Skeleton_blocker_simplex.h:50
Interface for a visitor of a simplicial complex.
Definition: Skeleton_blocker_complex_visitor.h:37
void on_swaped_edge(Vertex_handle a, Vertex_handle b, Vertex_handle x)
Called when performing an edge contraction when an edge bx is replaced by an edge ax (not already pre...
Definition: Skeleton_blocker_complex_visitor.h:120
void on_changed_edge(Vertex_handle a, Vertex_handle b)
Called when an edge changes, during the contraction of an edge.
Definition: Skeleton_blocker_complex_visitor.h:117