Loading...
Searching...
No Matches
Skeleton_blocker_complex_visitor.h
/* This file is part of the Gudhi Library - https://gudhi.inria.fr/ - which is released under MIT.
* See file LICENSE or go to https://gudhi.inria.fr/licensing/ for full license details.
* Author(s): David Salinas
*
* Copyright (C) 2014 Inria
*
* Modification(s):
* - YYYY/MM Author: Description of the modification
*/
#ifndef SKELETON_BLOCKER_SKELETON_BLOCKER_COMPLEX_VISITOR_H_
#define SKELETON_BLOCKER_SKELETON_BLOCKER_COMPLEX_VISITOR_H_
#include <gudhi/Skeleton_blocker/Skeleton_blocker_simplex.h>
namespace Gudhi {
namespace skeleton_blocker {
// TODO(DS): to be constified
template<typename Vertex_handle>
class Skeleton_blocker_complex_visitor {
public:
virtual ~Skeleton_blocker_complex_visitor() { }
virtual void on_add_vertex(Vertex_handle) = 0;
virtual void on_remove_vertex(Vertex_handle) = 0;
virtual void on_add_edge_without_blockers(Vertex_handle a, Vertex_handle b) = 0;
virtual void on_remove_edge(Vertex_handle a, Vertex_handle b) = 0;
virtual void on_changed_edge(Vertex_handle a, Vertex_handle b) = 0;
virtual void on_swaped_edge(Vertex_handle a, Vertex_handle b,
Vertex_handle x) = 0;
virtual void on_add_blocker(
const Skeleton_blocker_simplex<Vertex_handle>&) = 0;
virtual void on_delete_blocker(
const Skeleton_blocker_simplex<Vertex_handle>*) = 0;
};
template<typename Vertex_handle>
class Dummy_complex_visitor : public Skeleton_blocker_complex_visitor<
Vertex_handle> {
public:
void on_add_vertex(Vertex_handle) { }
void on_remove_vertex(Vertex_handle) { }
void on_add_edge_without_blockers(Vertex_handle a, Vertex_handle b) { }
void on_remove_edge(Vertex_handle a, Vertex_handle b) { }
void on_changed_edge(Vertex_handle a, Vertex_handle b) { }
void on_swaped_edge(Vertex_handle a, Vertex_handle b, Vertex_handle x) { }
void on_add_blocker(const Skeleton_blocker_simplex<Vertex_handle>&) { }
void on_delete_blocker(const Skeleton_blocker_simplex<Vertex_handle>*) { }
};
template<typename Vertex_handle>
class Print_complex_visitor : public Skeleton_blocker_complex_visitor<
Vertex_handle> {
public:
void on_add_vertex(Vertex_handle v) {
std::cerr << "on_add_vertex:" << v << std::endl;
}
void on_remove_vertex(Vertex_handle v) {
std::cerr << "on_remove_vertex:" << v << std::endl;
}
void on_add_edge_without_blockers(Vertex_handle a, Vertex_handle b) {
std::cerr << "on_add_edge_without_blockers:" << a << "," << b << std::endl;
}
void on_remove_edge(Vertex_handle a, Vertex_handle b) {
std::cerr << "on_remove_edge:" << a << "," << b << std::endl;
}
void on_changed_edge(Vertex_handle a, Vertex_handle b) {
std::cerr << "on_changed_edge:" << a << "," << b << std::endl;
}
void on_swaped_edge(Vertex_handle a, Vertex_handle b, Vertex_handle x) {
std::cerr << "on_swaped_edge:" << a << "," << b << "," << x << std::endl;
}
void on_add_blocker(const Skeleton_blocker_simplex<Vertex_handle>& b) {
std::cerr << "on_add_blocker:" << b << std::endl;
}
void on_delete_blocker(const Skeleton_blocker_simplex<Vertex_handle>* b) {
std::cerr << "on_delete_blocker:" << b << std::endl;
}
};
} // namespace skeleton_blocker
namespace skbl = skeleton_blocker;
} // namespace Gudhi
#endif // SKELETON_BLOCKER_SKELETON_BLOCKER_COMPLEX_VISITOR_H_
Gudhi::skeleton_blocker::Dummy_complex_visitor
A dummy visitor of a simplicial complex that does nothing.
Definition Skeleton_blocker_complex_visitor.h:65
Gudhi::skeleton_blocker::Dummy_complex_visitor::on_changed_edge
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:75
Gudhi::skeleton_blocker::Dummy_complex_visitor::on_swaped_edge
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:77
Gudhi::skeleton_blocker::Print_complex_visitor
A visitor that prints the visit information.
Definition Skeleton_blocker_complex_visitor.h:91
Gudhi::skeleton_blocker::Print_complex_visitor::on_changed_edge
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:109
Gudhi::skeleton_blocker::Print_complex_visitor::on_swaped_edge
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:113
Gudhi::skeleton_blocker::Skeleton_blocker_complex_visitor
Interface for a visitor of a simplicial complex.
Definition Skeleton_blocker_complex_visitor.h:26
Gudhi::skeleton_blocker::Skeleton_blocker_complex_visitor::on_changed_edge
virtual void on_changed_edge(Vertex_handle a, Vertex_handle b)=0
Called when an edge changes, during the contraction of an edge.
Gudhi::skeleton_blocker::Skeleton_blocker_complex_visitor::on_swaped_edge
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...
Gudhi::skeleton_blocker::Skeleton_blocker_simplex
Abstract simplex used in Skeleton blockers data-structure.
Definition Skeleton_blocker_simplex.h:38
Gudhi
Gudhi namespace.
Definition SimplicialComplexForAlpha.h:14