31#if defined(DiscreteExteriorCalculusFactory_RECURSES)
32#error Recursive header files inclusion detected in DiscreteExteriorCalculusFactory.h
35#define DiscreteExteriorCalculusFactory_RECURSES
37#if !defined DiscreteExteriorCalculusFactory_h
39#define DiscreteExteriorCalculusFactory_h
42#include "DGtal/dec/DiscreteExteriorCalculus.h"
43#include "DGtal/topology/DigitalSurface.h"
60template <
typename TLinearAlgebraBackend,
typename TInteger = DGtal::
int32_t>
66 typedef typename TLinearAlgebraBackend::DenseVector
DenseVector;
67 typedef typename TLinearAlgebraBackend::DenseMatrix
DenseMatrix;
86 template <
typename TDigitalSet>
101 template <Dimension dimEmbedded,
typename TNSCellConstIterator>
104 createFromNSCells(
const TNSCellConstIterator& begin,
const TNSCellConstIterator& end,
const bool add_border =
true);
118 template <DGtal::Dimension dimEmbedded,
typename TNSCellConstIterator,
typename TSCellMeasureFunctor>
121 createFromNSCells(
const TNSCellConstIterator& begin,
const TNSCellConstIterator& end,
const TSCellMeasureFunctor& normalFunctor,
const double h,
const bool add_border =
true);
143 template <
typename KSpace,
typename CellsSet>
158 template <
typename KSpace,
typename CellsAccum>
176 template <
typename KSpace,
typename CellsAccum,
typename MeasureAccum>
179 accumulateAllLowerIncidentCells(
const KSpace& kspace,
const typename CellsAccum::key_type& cell, CellsAccum& cells_accum, CellsAccum& local_accum, MeasureAccum& cell_to_measure,
const double measure);
215#if !defined(BUILD_INLINE)
216#include "DGtal/dec/DiscreteExteriorCalculusFactory.ih"
225#undef DiscreteExteriorCalculusFactory_RECURSES
Aim: This class provides static members to create DEC structures from various other DGtal structures.
BOOST_CONCEPT_ASSERT((concepts::CLinearAlgebra< DenseVector, SparseMatrix >))
static void insertAllLowerIncidentCells(const KSpace &kspace, const typename CellsSet::value_type &cell, CellsSet &cells_set)
BOOST_CONCEPT_ASSERT((concepts::CLinearAlgebra< DenseVector, DenseMatrix >))
DiscreteExteriorCalculusFactory & operator=(const DiscreteExteriorCalculusFactory &other)
static DiscreteExteriorCalculus< TDigitalSet::Point::dimension, TDigitalSet::Point::dimension, TLinearAlgebraBackend, TInteger > createFromDigitalSet(const TDigitalSet &set, const bool add_border=true)
BOOST_CONCEPT_ASSERT((concepts::CDynamicMatrix< SparseMatrix >))
BOOST_CONCEPT_ASSERT((concepts::CDynamicVector< DenseVector >))
TLinearAlgebraBackend::SparseMatrix SparseMatrix
static void accumulateAllLowerIncidentCells(const KSpace &kspace, const typename CellsAccum::key_type &cell, CellsAccum &cells_accum, CellsAccum &local_accum, MeasureAccum &cell_to_measure, const double measure)
TLinearAlgebraBackend::DenseVector DenseVector
TLinearAlgebraBackend::DenseMatrix DenseMatrix
static DiscreteExteriorCalculus< dimEmbedded, TNSCellConstIterator::value_type::Point::dimension, TLinearAlgebraBackend, TInteger > createFromNSCells(const TNSCellConstIterator &begin, const TNSCellConstIterator &end, const bool add_border=true)
DiscreteExteriorCalculusFactory(const DiscreteExteriorCalculusFactory &other)
DiscreteExteriorCalculusFactory()
static DiscreteExteriorCalculus< dimEmbedded, TNSCellConstIterator::value_type::Point::dimension, TLinearAlgebraBackend, TInteger > createFromNSCells(const TNSCellConstIterator &begin, const TNSCellConstIterator &end, const TSCellMeasureFunctor &normalFunctor, const double h, const bool add_border=true)
BOOST_CONCEPT_ASSERT((concepts::CInteger< TInteger >))
static void accumulateAllLowerIncidentCells(const KSpace &kspace, const typename CellsAccum::key_type &cell, CellsAccum &cells_accum)
BOOST_CONCEPT_ASSERT((concepts::CDynamicMatrix< DenseMatrix >))
Aim: DiscreteExteriorCalculus represents a calculus in the dec package. This is the main structure in...
Aim: This class is a model of CCellularGridSpaceND. It represents the cubical grid as a cell complex,...
DGtal is the top-level namespace which contains all DGtal functions and types.
Aim: Represent any dynamic sized matrix having sparse or dense representation.
Aim: Represent any dynamic sized column vector having sparse or dense representation.
Aim: Concept checking for Integer Numbers. More precisely, this concept is a refinement of both CEucl...
Aim: Check right multiplication between matrix and vector and internal matrix multiplication....