32#if defined(VoxelComplexFunctions_RECURSES)
33#error Recursive header files inclusion detected in VoxelComplexFunctions.h
36#define VoxelComplexFunctions_RECURSES
38#if !defined VoxelComplexFunctions_h
40#define VoxelComplexFunctions_h
45#include "DGtal/base/Common.h"
46#include "DGtal/topology/VoxelComplex.h"
52 template <
typename TComplex >
57 std::pair<typename TComplex::Cell, typename TComplex::Data> (
58 const typename TComplex::Clique &)
63 const typename TComplex::Cell & )
68 template <
typename TComplex >
73 std::pair<typename TComplex::Cell, typename TComplex::Data> (
74 const typename TComplex::Clique &)
79 const typename TComplex::Cell & )
94 template <
typename TComplex >
95 std::pair<typename TComplex::Cell, typename TComplex::Data>
97 const typename TComplex::Clique & clique);
107 template <
typename TComplex >
108 std::pair<typename TComplex::Cell, typename TComplex::Data>
110 const typename TComplex::Clique & clique);
122 template <
typename TComplex,
typename TRandomGenerator >
123 std::pair<typename TComplex::Cell, typename TComplex::Data>
125 const typename TComplex::Clique & clique,
126 TRandomGenerator & gen);
153 template <
typename TDistanceTransform,
typename TComplex >
154 std::pair<typename TComplex::Cell, typename TComplex::Data>
156 const TDistanceTransform & dist_map,
157 const typename TComplex::Clique & clique);
176 template <
typename TComplex >
180 const typename TComplex::Cell & cell);
191 template <
typename TComplex >
195 const typename TComplex::Cell & cell);
210 template <
typename TComplex >
214 const typename TComplex::Cell & cell);
228 template <
typename TComplex >
232 const typename TComplex::Cell & cell);
249 template <
typename TComplex >
253 const typename TComplex::Cell & cell);
269 template <
typename TComplex >
273 const typename TComplex::Cell & cell);
313 template <
typename TComplex >
316 const boost::dynamic_bitset<> & table,
317 const std::unordered_map<typename TComplex::Point, unsigned int> & pointToMaskMap,
319 const typename TComplex::Cell & cell);
332 template <
typename TObject >
349 template <
typename TObject >
365 template <
typename TObject >
366 std::vector< TObject >
384 template <
typename TKSpace,
typename TCellContainer>
390 for (
Dimension i = 0; i <= VC::dimension; ++i )
406 template <
typename TKSpace,
typename TCellContainer>
407 inline VoxelComplex< TKSpace, TCellContainer >
413 for (
Dimension i = 0; i <= VC::dimension; ++i )
414 functions::setops::operator-=( S.myCells[ i ],S2.
myCells[ i ] );
422#include "DGtal/topology/VoxelComplexFunctions.ih"
429#undef VoxelComplexFunctions_RECURSES
std::vector< CellMap > myCells
This class represents a voxel complex living in some Khalimsky space. Voxel complexes are derived fro...
bool skelIsthmus(const TComplex &vc, const typename TComplex::Cell &cell)
bool skelWithTable(const boost::dynamic_bitset<> &table, const std::unordered_map< typename TComplex::Point, unsigned int > &pointToMaskMap, const TComplex &vc, const typename TComplex::Cell &cell)
std::pair< typename TComplex::Cell, typename TComplex::Data > selectRandom(const typename TComplex::Clique &clique)
std::pair< typename TComplex::Cell, typename TComplex::Data > selectFirst(const typename TComplex::Clique &clique)
TComplex persistenceAsymetricThinningScheme(TComplex &vc, std::function< std::pair< typename TComplex::Cell, typename TComplex::Data >(const typename TComplex::Clique &) > Select, std::function< bool(const TComplex &, const typename TComplex::Cell &) > Skel, uint32_t persistence, bool verbose=false)
bool isZeroSurface(const TObject &small_obj)
bool skelSimple(const TComplex &vc, const typename TComplex::Cell &cell)
bool isOneSurface(const TObject &small_obj)
bool skelEnd(const TComplex &vc, const typename TComplex::Cell &cell)
TComplex asymetricThinningScheme(TComplex &vc, std::function< std::pair< typename TComplex::Cell, typename TComplex::Data >(const typename TComplex::Clique &) > Select, std::function< bool(const TComplex &, const typename TComplex::Cell &) > Skel, bool verbose=false)
std::pair< typename TComplex::Cell, typename TComplex::Data > selectMaxValue(const TDistanceTransform &dist_map, const typename TComplex::Clique &clique)
std::vector< TObject > connectedComponents(const TObject &input_obj, bool verbose)
bool skelUltimate(const TComplex &vc, const typename TComplex::Cell &cell)
bool twoIsthmus(const TComplex &vc, const typename TComplex::Cell &cell)
bool oneIsthmus(const TComplex &vc, const typename TComplex::Cell &cell)
DGtal is the top-level namespace which contains all DGtal functions and types.
boost::uint32_t uint32_t
unsigned 32-bit integer.
DGtal::uint32_t Dimension
KForm< Calculus, order, duality > operator-(const KForm< Calculus, order, duality > &form_a, const KForm< Calculus, order, duality > &form_b)
CubicalComplex< TKSpace, TCellContainer > & operator-=(CubicalComplex< TKSpace, TCellContainer > &, const CubicalComplex< TKSpace, TCellContainer > &)