summaryrefslogtreecommitdiff
path: root/include/gudhi/Cech_complex_blocker.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/gudhi/Cech_complex_blocker.h')
-rw-r--r--include/gudhi/Cech_complex_blocker.h91
1 files changed, 0 insertions, 91 deletions
diff --git a/include/gudhi/Cech_complex_blocker.h b/include/gudhi/Cech_complex_blocker.h
deleted file mode 100644
index b0d347b1..00000000
--- a/include/gudhi/Cech_complex_blocker.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* This file is part of the Gudhi Library. The Gudhi library
- * (Geometric Understanding in Higher Dimensions) is a generic C++
- * library for computational topology.
- *
- * Author(s): Vincent Rouvreau
- *
- * Copyright (C) 2018 Inria
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef CECH_COMPLEX_BLOCKER_H_
-#define CECH_COMPLEX_BLOCKER_H_
-
-#include <gudhi/distance_functions.h> // for Gudhi::Minimal_enclosing_ball_radius
-
-#include <iostream>
-#include <vector>
-#include <cmath> // for std::sqrt
-
-namespace Gudhi {
-
-namespace cech_complex {
-
-/** \internal
- * \class Cech_blocker
- * \brief Čech complex blocker.
- *
- * \ingroup cech_complex
- *
- * \details
- * Čech blocker is an oracle constructed from a Cech_complex and a simplicial complex.
- *
- * \tparam SimplicialComplexForProximityGraph furnishes `Simplex_handle` and `Filtration_value` type definition,
- * `simplex_vertex_range(Simplex_handle sh)`and `assign_filtration(Simplex_handle sh, Filtration_value filt)` methods.
- *
- * \tparam Chech_complex is required by the blocker.
- */
-template <typename SimplicialComplexForCech, typename Cech_complex>
-class Cech_blocker {
- private:
- using Point_cloud = typename Cech_complex::Point_cloud;
-
- using Simplex_handle = typename SimplicialComplexForCech::Simplex_handle;
- using Filtration_value = typename SimplicialComplexForCech::Filtration_value;
-
- public:
- /** \internal \brief Čech complex blocker operator() - the oracle - assigns the filtration value from the simplex
- * radius and returns if the simplex expansion must be blocked.
- * \param[in] sh The Simplex_handle.
- * \return true if the simplex radius is greater than the Cech_complex max_radius*/
- bool operator()(Simplex_handle sh) {
- Point_cloud points;
- for (auto vertex : sc_ptr_->simplex_vertex_range(sh)) {
- points.push_back(cc_ptr_->get_point(vertex));
-#ifdef DEBUG_TRACES
- std::cout << "#(" << vertex << ")#";
-#endif // DEBUG_TRACES
- }
- Filtration_value radius = Gudhi::Minimal_enclosing_ball_radius()(points);
-#ifdef DEBUG_TRACES
- if (radius > cc_ptr_->max_radius()) std::cout << "radius > max_radius => expansion is blocked\n";
-#endif // DEBUG_TRACES
- sc_ptr_->assign_filtration(sh, radius);
- return (radius > cc_ptr_->max_radius());
- }
-
- /** \internal \brief Čech complex blocker constructor. */
- Cech_blocker(SimplicialComplexForCech* sc_ptr, Cech_complex* cc_ptr) : sc_ptr_(sc_ptr), cc_ptr_(cc_ptr) {}
-
- private:
- SimplicialComplexForCech* sc_ptr_;
- Cech_complex* cc_ptr_;
-};
-
-} // namespace cech_complex
-
-} // namespace Gudhi
-
-#endif // CECH_COMPLEX_BLOCKER_H_