Loading...
Searching...
No Matches
all_faces_in.h
/* 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): Siargey Kachanovich
*
* Copyright (C) 2015 Inria
*
* Modification(s):
* - YYYY/MM Author: Description of the modification
*/
#ifndef WITNESS_COMPLEX_ALL_FACES_IN_H_
#define WITNESS_COMPLEX_ALL_FACES_IN_H_
template < typename SimplicialComplexForWitness,
typename Simplex >
bool all_faces_in(Simplex& simplex,
double* filtration_value,
SimplicialComplexForWitness& sc) {
typedef typename SimplicialComplexForWitness::Simplex_handle Simplex_handle;
if (simplex.size() == 1)
return true; /* Add vertices unconditionally */
Simplex facet;
for (typename Simplex::iterator not_it = simplex.begin(); not_it != simplex.end(); ++not_it) {
facet.clear();
for (typename Simplex::iterator it = simplex.begin(); it != simplex.end(); ++it)
if (it != not_it)
facet.push_back(*it);
Simplex_handle facet_sh = sc.find(facet);
if (facet_sh == sc.null_simplex())
return false;
else if (sc.filtration(facet_sh) > *filtration_value)
*filtration_value = sc.filtration(facet_sh);
}
return true;
}
#endif // WITNESS_COMPLEX_ALL_FACES_IN_H_