summaryrefslogtreecommitdiff
path: root/src/Skeleton_blocker/include/gudhi/Skeleton_blocker.h
diff options
context:
space:
mode:
authorsalinasd <salinasd@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2015-01-30 13:03:25 +0000
committersalinasd <salinasd@636b058d-ea47-450e-bf9e-a15bfbe3eedb>2015-01-30 13:03:25 +0000
commitfa6598d26033b44f3c65f3bbbdc9f09713488be7 (patch)
tree2d608a613a2d9a5d264800916805545afb058272 /src/Skeleton_blocker/include/gudhi/Skeleton_blocker.h
parent9e4b5532c0cf675de75b493f805d998e3e8f1fff (diff)
skbl add an example
git-svn-id: svn+ssh://scm.gforge.inria.fr/svnroot/gudhi/trunk@450 636b058d-ea47-450e-bf9e-a15bfbe3eedb Former-commit-id: 1a0efe7084ccff068823a4ab33bd3ec8522349ed
Diffstat (limited to 'src/Skeleton_blocker/include/gudhi/Skeleton_blocker.h')
-rw-r--r--src/Skeleton_blocker/include/gudhi/Skeleton_blocker.h56
1 files changed, 54 insertions, 2 deletions
diff --git a/src/Skeleton_blocker/include/gudhi/Skeleton_blocker.h b/src/Skeleton_blocker/include/gudhi/Skeleton_blocker.h
index 1d1a9bba..7057437c 100644
--- a/src/Skeleton_blocker/include/gudhi/Skeleton_blocker.h
+++ b/src/Skeleton_blocker/include/gudhi/Skeleton_blocker.h
@@ -116,7 +116,7 @@ You may want to use this visitor to compute statistics or to update another data
\section Example
-\subsection s Iterating through vertices, edges, blockers and simplices
+\subsection Iterating Iterating through vertices, edges, blockers and simplices
Iteration through vertices, edges, simplices or blockers is straightforward with c++11 for range loops.
Note that simplex iteration with this implicit data-structure just takes
@@ -177,8 +177,60 @@ The Euler Characteristic is 1
\endverbatim
+\subsection s Constructing a skeleton-blockers from a list of maximal faces or from a list of faces
-\subsection Acknowledgements
+ \code{.cpp}
+ std::vector<Simplex_handle> simplices;
+
+ //add 4 triangles of a tetrahedron 0123
+ simplices.push_back(Simplex_handle(Vertex_handle(0),Vertex_handle(1),Vertex_handle(2)));
+ simplices.push_back(Simplex_handle(Vertex_handle(1),Vertex_handle(2),Vertex_handle(3)));
+ simplices.push_back(Simplex_handle(Vertex_handle(3),Vertex_handle(0),Vertex_handle(2)));
+ simplices.push_back(Simplex_handle(Vertex_handle(3),Vertex_handle(0),Vertex_handle(1)));
+
+ Complex complex;
+ //get complex from top faces
+ make_complex_from_top_faces(complex,simplices.begin(),simplices.end());
+
+ std::cout << "Simplices:"<<std::endl;
+ for(const Simplex & s : complex.simplex_range())
+ std::cout << s << " ";
+ std::cout << std::endl;
+
+ //One blocker as simplex 0123 is not in the complex but all its proper faces are.
+ std::cout << "Blockers: "<<complex.blockers_to_string()<<std::endl;
+
+ //now build a complex from its full list of simplices
+ simplices.clear();
+ simplices.push_back(Simplex_handle(Vertex_handle(0)));
+ simplices.push_back(Simplex_handle(Vertex_handle(1)));
+ simplices.push_back(Simplex_handle(Vertex_handle(2)));
+ simplices.push_back(Simplex_handle(Vertex_handle(0),Vertex_handle(1)));
+ simplices.push_back(Simplex_handle(Vertex_handle(1),Vertex_handle(2)));
+ simplices.push_back(Simplex_handle(Vertex_handle(2),Vertex_handle(0)));
+ complex = Complex(simplices.begin(),simplices.end());
+
+ std::cout << "Simplices:"<<std::endl;
+ for(const Simplex & s : complex.simplex_range())
+ std::cout << s << " ";
+ std::cout << std::endl;
+
+ //One blocker as simplex 012 is not in the complex but all its proper faces are.
+ std::cout << "Blockers: "<<complex.blockers_to_string()<<std::endl;
+ \endcode
+\verbatim
+./SkeletonBlockerFromSimplices
+Simplices:
+{0} {0,1} {0,2} {0,3} {0,1,2} {0,1,3} {0,2,3} {1} {1,2} {1,3} {1,2,3} {2} {2,3} {3}
+Blockers: {0,1,2,3}
+
+Simplices:
+{0} {0,1} {0,2} {1} {1,2} {2}
+Blockers: {0,1,2}
+\endverbatim
+
+
+\section Acknowledgements
The author wishes to thank Dominique Attali and André Lieutier for
their collaboration to write the two initial papers
\cite socg_blockers_2011,\cite blockers2012