mini_simplex_tree.cpp
/* 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): Marc Glisse
*
* Copyright (C) 2015 Inria
*
* Modification(s):
* - YYYY/MM Author: Description of the modification
*/
#include <gudhi/Simplex_tree.h>
#include <iostream>
#include <initializer_list>
// With Gudhi::Simplex_tree_options_minimal filtration values are not stored and persistence cannot be computed.
// I can still improve the memory footprint
// As I have few vertices
typedef short Vertex_handle;
};
// Dictionary should be private, but for now this is the easiest way.
static_assert(sizeof(ST::Dictionary::value_type) < sizeof(Gudhi::Simplex_tree<>::Dictionary::value_type),
"Not storing the filtration and key should save some space");
int main() {
ST st;
/* Complex to build. */
/* 1 */
/* o */
/* /X\ */
/* o---o---o */
/* 2 0 3 */
auto triangle012 = {0, 1, 2};
auto edge03 = {0, 3};
st.insert_simplex_and_subfaces(triangle012);
auto edge02 = {0, 2};
ST::Simplex_handle e = st.find(edge02);
// We are not using filtrations so everything has value 0
assert(st.filtration(e) == 0);
// Only coface is 012
for (ST::Vertex_handle v : st.simplex_vertex_range(t)) // v in { 0, 1, 2 }
std::clog << v;
std::clog << '\n';
}
}
Simplex Tree data structure for representing simplicial complexes.
Definition: Simplex_tree.h:95
Cofaces_simplex_range cofaces_simplex_range(const Simplex_handle simplex, int codimension)
Compute the cofaces of a n simplex.
Definition: Simplex_tree.h:1172
std::pair< Simplex_handle, bool > insert_simplex_and_subfaces(const InputVertexRange &Nsimplex, Filtration_value filtration=0)
Insert a N-simplex and all his subfaces, from a N-simplex represented by a range of Vertex_handles,...
Definition: Simplex_tree.h:942
Dictionary::iterator Simplex_handle
Handle type to a simplex contained in the simplicial complex represented by the simplex tree.
Definition: Simplex_tree.h:175
Simplex_vertex_range simplex_vertex_range(Simplex_handle sh) const
Returns a range over the vertices of a simplex.
Definition: Simplex_tree.h:349
static Filtration_value filtration(Simplex_handle sh)
Returns the filtration value of a simplex.
Definition: Simplex_tree.h:614
Simplex_handle find(const InputVertexRange &s)
Given a range of Vertex_handles, returns the Simplex_handle of the simplex in the simplicial complex ...
Definition: Simplex_tree.h:767
Definition: simplex_tree_options.h:63
Handle type for the vertices of a cell complex.
Definition: VertexHandle.h:15