summaryrefslogtreecommitdiff
path: root/src/Collapse/example
diff options
context:
space:
mode:
authorROUVREAU Vincent <vincent.rouvreau@inria.fr>2020-04-14 10:19:38 +0200
committerROUVREAU Vincent <vincent.rouvreau@inria.fr>2020-04-14 10:19:38 +0200
commit8400ce874e0d17c6d6c80bbd4b34dff40a768fe0 (patch)
tree2ac686bffe0730772ada921b6fdf6c5ea44d7ecf /src/Collapse/example
parent0e756c2aa5793890500f4f849149c902e184ec1e (diff)
Some documentation and examples
Diffstat (limited to 'src/Collapse/example')
-rw-r--r--src/Collapse/example/CMakeLists.txt10
-rw-r--r--src/Collapse/example/edge_collapse_basic_example.cpp45
-rw-r--r--src/Collapse/example/edge_collapse_example_basic.txt5
3 files changed, 60 insertions, 0 deletions
diff --git a/src/Collapse/example/CMakeLists.txt b/src/Collapse/example/CMakeLists.txt
new file mode 100644
index 00000000..6cf3bf07
--- /dev/null
+++ b/src/Collapse/example/CMakeLists.txt
@@ -0,0 +1,10 @@
+project(Edge_collapse_examples)
+
+# Point cloud
+add_executable ( Edge_collapse_example_basic edge_collapse_basic_example.cpp )
+
+if (TBB_FOUND)
+ target_link_libraries(Edge_collapse_example_basic ${TBB_LIBRARIES})
+endif()
+
+add_test(NAME Edge_collapse_example_basic COMMAND $<TARGET_FILE:Edge_collapse_example_basic>)
diff --git a/src/Collapse/example/edge_collapse_basic_example.cpp b/src/Collapse/example/edge_collapse_basic_example.cpp
new file mode 100644
index 00000000..a154c6bb
--- /dev/null
+++ b/src/Collapse/example/edge_collapse_basic_example.cpp
@@ -0,0 +1,45 @@
+#include <gudhi/Flag_complex_sparse_matrix.h>
+
+#include <iostream>
+#include <vector>
+
+int main() {
+ // Type definitions
+ using Filtration_value = float;
+ using Vertex_handle = short;
+ using Flag_complex_sparse_matrix = Gudhi::collapse::Flag_complex_sparse_matrix<Vertex_handle, Filtration_value>;
+ using Filtered_edge = Flag_complex_sparse_matrix::Filtered_edge;
+ using Filtered_edge_list = std::vector<Filtered_edge>;
+ using Edge = Flag_complex_sparse_matrix::Edge;
+
+ // 1 2
+ // o---o
+ // |\ /|
+ // | x |
+ // |/ \|
+ // o---o
+ // 0 3
+ Filtered_edge_list graph = {{{0, 1}, 1.},
+ {{1, 2}, 1.},
+ {{2, 3}, 1.},
+ {{3, 0}, 1.},
+ {{0, 2}, 2.},
+ {{1, 3}, 2.}};
+
+ Flag_complex_sparse_matrix flag_complex_sparse_matrix(graph);
+
+ Filtered_edge_list collapse_edges;
+ // Retrieve collapse edges from the output iterator
+ flag_complex_sparse_matrix.filtered_edge_collapse(
+ [&collapse_edges](std::pair<Vertex_handle, Vertex_handle> edge, Filtration_value filtration) {
+ collapse_edges.push_back({edge, filtration});
+ });
+
+ for (Filtered_edge filtered_edge_from_collapse : collapse_edges) {
+ Edge edge_from_collapse = std::get<0>(filtered_edge_from_collapse);
+ std::cout << "fn[" << std::get<0>(edge_from_collapse) << ", " << std::get<1>(edge_from_collapse) << "] = "
+ << std::get<1>(filtered_edge_from_collapse) << std::endl;
+ }
+
+ return 0;
+}
diff --git a/src/Collapse/example/edge_collapse_example_basic.txt b/src/Collapse/example/edge_collapse_example_basic.txt
new file mode 100644
index 00000000..acecacaf
--- /dev/null
+++ b/src/Collapse/example/edge_collapse_example_basic.txt
@@ -0,0 +1,5 @@
+fn[0, 1] = 1
+fn[1, 2] = 1
+fn[2, 3] = 1
+fn[3, 0] = 1
+fn[0, 2] = 2