From 24683e8d0134e7ede7033f05b83c44dd72ff7e3a Mon Sep 17 00:00:00 2001 From: mcarrier Date: Tue, 18 Sep 2018 22:01:20 +0000 Subject: git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/branches/Nerve_GIC@3897 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: f5fe42a6f42443ca7217c69f8a18780cdb85669e --- src/Nerve_GIC/include/gudhi/GIC.h | 18 ++++++++++++++++++ src/cython/cython/nerve_gic.pyx | 9 +++++++++ 2 files changed, 27 insertions(+) diff --git a/src/Nerve_GIC/include/gudhi/GIC.h b/src/Nerve_GIC/include/gudhi/GIC.h index 2c37dfae..242ecf7d 100644 --- a/src/Nerve_GIC/include/gudhi/GIC.h +++ b/src/Nerve_GIC/include/gudhi/GIC.h @@ -389,6 +389,24 @@ class Cover_complex { distances[index[boost::source(*ei, one_skeleton)]][index[boost::target(*ei, one_skeleton)]]); } + public: + /** \brief Reads and stores the distance matrices from vector stored in memory. + * + * @param[in] distance_matrix input vector representing the distance matrix. + * + */ + template + void set_distances_from_range(InputRange const & distance_matrix) { + n = distance_matrix.size(); data_dimension = 0; point_cloud_name = "matrix"; + for(int i = 0; i < n; i++){ + point_cloud.emplace_back(); + boost::add_vertex(one_skeleton_OFF); + vertices.push_back(boost::add_vertex(one_skeleton)); + cover.emplace_back(); + } + distances = distance_matrix; + } + public: // Pairwise distances. /** \private \brief Computes all pairwise distances. */ diff --git a/src/cython/cython/nerve_gic.pyx b/src/cython/cython/nerve_gic.pyx index 01dd0a4b..5f01b379 100644 --- a/src/cython/cython/nerve_gic.pyx +++ b/src/cython/cython/nerve_gic.pyx @@ -68,6 +68,7 @@ cdef extern from "Nerve_gic_interface.h" namespace "Gudhi": void plot_DOT() void plot_OFF() void set_point_cloud_from_range(vector[vector[double]] cloud) + void set_distances_from_range(vector[vector[double]] distance_matrix) # CoverComplex python interface cdef class CoverComplex: @@ -111,6 +112,14 @@ cdef class CoverComplex: """ return self.thisptr.set_point_cloud_from_range(cloud) + def set_distances_from_range(self, distance_matrix): + """ Reads and stores the input distance matrix from a vector stored in memory. + + :param distance_matrix: Input vector containing the distance matrix. + :type distance_matrix: vector[vector[double]] + """ + return self.thisptr.set_distances_from_range(distance_matrix) + def compute_confidence_level_from_distance(self, distance): """Computes the confidence level of a specific bottleneck distance threshold. -- cgit v1.2.3