DGtal
0.9.2
|
#include <DGtal/dec/DiscreteExteriorCalculus.h>
Data Structures | |
struct | Property |
Public Member Functions | |
BOOST_CONCEPT_ASSERT ((concepts::CInteger< TInteger >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CDynamicVector< DenseVector >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CDynamicMatrix< DenseMatrix >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CDynamicMatrix< SparseMatrix >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CLinearAlgebra< DenseVector, SparseMatrix >)) | |
BOOST_CONCEPT_ASSERT ((concepts::CLinearAlgebra< DenseVector, DenseMatrix >)) | |
BOOST_STATIC_ASSERT ((boost::is_same< Dimension, Order >::value)) | |
BOOST_STATIC_ASSERT ((dimAmbient >=dimEmbedded)) | |
BOOST_STATIC_CONSTANT (Dimension, dimensionEmbedded=dimEmbedded) | |
BOOST_STATIC_CONSTANT (Dimension, dimensionAmbient=dimAmbient) | |
DiscreteExteriorCalculus () | |
template<typename TDomain > | |
void | initKSpace (ConstAlias< TDomain > domain) |
ConstIterator | begin () const |
ConstIterator | end () const |
Iterator | begin () |
Iterator | end () |
void | selfDisplay (std::ostream &out) const |
std::string | className () const |
bool | insertSCell (const SCell &signed_cell) |
bool | insertSCell (const SCell &signed_cell, const Scalar &primal_size, const Scalar &dual_size) |
bool | eraseCell (const Cell &cell) |
void | updateIndexes () |
const Properties & | getProperties () const |
template<Order order, Duality duality> | |
const SCells & | getIndexedSCells () const |
template<Order order, Duality duality, typename TConstIterator > | |
LinearOperator< Self, order, duality, order, duality > | reorder (const TConstIterator &begin_range, const TConstIterator &end_range) const |
template<Order order, Duality duality> | |
LinearOperator< Self, order, duality, order, duality > | identity () const |
template<Order order, Duality duality> | |
LinearOperator< Self, order, duality, order+1, duality > | derivative () const |
template<Order order, Duality duality> | |
LinearOperator< Self, order, duality, order-1, duality > | antiderivative () const |
template<Duality duality> | |
LinearOperator< Self, 0, duality, 0, duality > | laplace () const |
template<Order order, Duality duality> | |
LinearOperator< Self, order, duality, dimEmbedded-order, OppositeDuality< duality >::duality > | hodge () const |
template<Duality duality> | |
KForm< Self, 1, duality > | flat (const VectorField< Self, duality > &vector_field) const |
template<Duality duality> | |
LinearOperator< Self, 0, duality, 1, duality > | flatDirectional (const Dimension &dir) const |
template<Duality duality> | |
VectorField< Self, duality > | sharp (const KForm< Self, 1, duality > &one_form) const |
template<Duality duality> | |
LinearOperator< Self, 1, duality, 0, duality > | sharpDirectional (const Dimension &dir) const |
SCell | getSCell (const Order &order, const Duality &duality, const Index &index) const |
bool | isCellFlipped (const Cell &cell) const |
bool | containsCell (const Cell &cell) const |
Index | getCellIndex (const Cell &cell) const |
Index | kFormLength (const Order &order, const Duality &duality) const |
Order | actualOrder (const Order &order, const Duality &duality) const |
Scalar | hodgeSign (const Cell &cell, const Duality &duality) const |
Dimension | edgeDirection (const Cell &cell, const Duality &duality) const |
void | resetSizes () |
bool | isValid () const |
Data Fields | |
KSpace | myKSpace |
Private Member Functions | |
void | updateCachedOperators () |
template<Duality duality> | |
void | updateFlatOperator () |
template<Duality duality> | |
void | updateSharpOperator () |
Private Attributes | |
Properties | myCellProperties |
IndexedSCells | myIndexSignedCells |
boost::array< boost::array< SparseMatrix, dimAmbient >, 2 > | myFlatOperatorMatrixes |
boost::array< boost::array< SparseMatrix, dimAmbient >, 2 > | mySharpOperatorMatrixes |
bool | myCachedOperatorsNeedUpdate |
bool | myIndexesNeedUpdate |
Friends | |
class | DiscreteExteriorCalculusFactory< TLinearAlgebraBackend, TInteger > |
Aim: DiscreteExteriorCalculus represents a calculus in the dec package. This is the main structure in the dec package. This is used to describe the space on which the dec is build and to compute various operators. Once operators or kforms are created, this structure should not be modified.
Description of template class 'DiscreteExteriorCalculus'
dimEmbedded | dimension of emmbedded manifold. |
dimAmbient | dimension of ambient manifold. |
TLinearAlgebraBackend | linear algebra backend used (i.e. EigenSparseLinearAlgebraBackend). |
TInteger | integer type forwarded to khalimsky space. |
Definition at line 96 of file DiscreteExteriorCalculus.h.
typedef KSpace::Cell DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::Cell |
Definition at line 131 of file DiscreteExteriorCalculus.h.
typedef Properties::const_iterator DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::ConstIterator |
Const iterator typedef.
Definition at line 252 of file DiscreteExteriorCalculus.h.
typedef LinearAlgebraBackend::DenseMatrix DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DenseMatrix |
Definition at line 109 of file DiscreteExteriorCalculus.h.
typedef LinearAlgebraBackend::DenseVector DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DenseVector |
Definition at line 108 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 1, DUAL, 0, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualAntiderivative1 |
Definition at line 204 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 2, DUAL, 1, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualAntiderivative2 |
Definition at line 205 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 3, DUAL, 2, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualAntiderivative3 |
Definition at line 206 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 0, DUAL, 1, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualDerivative0 |
Definition at line 194 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 1, DUAL, 2, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualDerivative1 |
Definition at line 195 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 2, DUAL, 3, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualDerivative2 |
Definition at line 196 of file DiscreteExteriorCalculus.h.
typedef KForm<Self, 0, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualForm0 |
Definition at line 183 of file DiscreteExteriorCalculus.h.
typedef KForm<Self, 1, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualForm1 |
Definition at line 184 of file DiscreteExteriorCalculus.h.
typedef KForm<Self, 2, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualForm2 |
Definition at line 185 of file DiscreteExteriorCalculus.h.
typedef KForm<Self, 3, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualForm3 |
Definition at line 186 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 0, DUAL, dimEmbedded-0, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualHodge0 |
Definition at line 215 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 1, DUAL, dimEmbedded-1, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualHodge1 |
Definition at line 216 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 2, DUAL, dimEmbedded-2, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualHodge2 |
Definition at line 217 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 3, DUAL, dimEmbedded-3, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualHodge3 |
Definition at line 218 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 0, DUAL, 0, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualIdentity0 |
Definition at line 227 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 1, DUAL, 1, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualIdentity1 |
Definition at line 228 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 2, DUAL, 2, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualIdentity2 |
Definition at line 229 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 3, DUAL, 3, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualIdentity3 |
Definition at line 230 of file DiscreteExteriorCalculus.h.
typedef VectorField<Self, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DualVectorField |
Definition at line 174 of file DiscreteExteriorCalculus.h.
typedef LinearAlgebraBackend::DenseVector::Index DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::Index |
Definition at line 106 of file DiscreteExteriorCalculus.h.
typedef boost::array<SCells, dimEmbedded+1> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::IndexedSCells |
Definition at line 168 of file DiscreteExteriorCalculus.h.
typedef Properties::iterator DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::Iterator |
Iterator typedef.
Definition at line 267 of file DiscreteExteriorCalculus.h.
typedef DGtal::KhalimskySpaceND<dimAmbient, TInteger> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::KSpace |
Definition at line 130 of file DiscreteExteriorCalculus.h.
typedef TLinearAlgebraBackend DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::LinearAlgebraBackend |
Definition at line 105 of file DiscreteExteriorCalculus.h.
typedef KSpace::Point DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::Point |
Definition at line 133 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 1, PRIMAL, 0, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalAntiderivative1 |
Antiderivative linear operator typedefs.
Definition at line 201 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 2, PRIMAL, 1, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalAntiderivative2 |
Definition at line 202 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 3, PRIMAL, 2, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalAntiderivative3 |
Definition at line 203 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 0, PRIMAL, 1, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalDerivative0 |
Derivative linear operator typedefs.
Definition at line 191 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 1, PRIMAL, 2, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalDerivative1 |
Definition at line 192 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 2, PRIMAL, 3, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalDerivative2 |
Definition at line 193 of file DiscreteExteriorCalculus.h.
typedef KForm<Self, 0, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalForm0 |
KForms typedefs.
Definition at line 179 of file DiscreteExteriorCalculus.h.
typedef KForm<Self, 1, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalForm1 |
Definition at line 180 of file DiscreteExteriorCalculus.h.
typedef KForm<Self, 2, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalForm2 |
Definition at line 181 of file DiscreteExteriorCalculus.h.
typedef KForm<Self, 3, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalForm3 |
Definition at line 182 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 0, PRIMAL, dimEmbedded-0, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalHodge0 |
Hodge duality linear operator typedefs.
Definition at line 211 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 1, PRIMAL, dimEmbedded-1, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalHodge1 |
Definition at line 212 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 2, PRIMAL, dimEmbedded-2, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalHodge2 |
Definition at line 213 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 3, PRIMAL, dimEmbedded-3, DUAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalHodge3 |
Definition at line 214 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 0, PRIMAL, 0, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalIdentity0 |
Identity linear operator typedefs.
Definition at line 223 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 1, PRIMAL, 1, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalIdentity1 |
Definition at line 224 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 2, PRIMAL, 2, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalIdentity2 |
Definition at line 225 of file DiscreteExteriorCalculus.h.
typedef LinearOperator<Self, 3, PRIMAL, 3, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalIdentity3 |
Definition at line 226 of file DiscreteExteriorCalculus.h.
typedef VectorField<Self, PRIMAL> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::PrimalVectorField |
Vector field typedefs.
Definition at line 173 of file DiscreteExteriorCalculus.h.
typedef boost::unordered_map<Cell, Property> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::Properties |
Cells properties map typedef.
Definition at line 162 of file DiscreteExteriorCalculus.h.
typedef LinearAlgebraBackend::DenseVector::Scalar DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::Scalar |
Definition at line 107 of file DiscreteExteriorCalculus.h.
typedef KSpace::SCell DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::SCell |
Definition at line 132 of file DiscreteExteriorCalculus.h.
typedef std::vector<SCell> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::SCells |
Indices to cells map typedefs.
Definition at line 167 of file DiscreteExteriorCalculus.h.
typedef DiscreteExteriorCalculus<dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::Self |
Definition at line 103 of file DiscreteExteriorCalculus.h.
typedef LinearAlgebraBackend::SparseMatrix DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::SparseMatrix |
Definition at line 110 of file DiscreteExteriorCalculus.h.
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::DiscreteExteriorCalculus | ( | ) |
Constructor. Initialize empty discrete exterior calculus.
Order DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::actualOrder | ( | const Order & | order, |
const Duality & | duality | ||
) | const |
Return actual order of k-forms in the dec package representation. Used internally mostly.
order | order. |
duality | duality. |
LinearOperator<Self, order, duality, order-1, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::antiderivative | ( | ) | const |
Antiderivative operator from order-forms to _(order-1)_-forms.
order | order of input k-form. |
duality | duality of input k-form. |
ConstIterator DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::begin | ( | ) | const |
Begin const iterator.
Iterator DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::begin | ( | ) |
Begin iterator.
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_CONCEPT_ASSERT | ( | (concepts::CInteger< TInteger >) | ) |
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_CONCEPT_ASSERT | ( | (concepts::CDynamicVector< DenseVector >) | ) |
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_CONCEPT_ASSERT | ( | (concepts::CDynamicMatrix< DenseMatrix >) | ) |
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_CONCEPT_ASSERT | ( | (concepts::CDynamicMatrix< SparseMatrix >) | ) |
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_CONCEPT_ASSERT | ( | (concepts::CLinearAlgebra< DenseVector, SparseMatrix >) | ) |
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_CONCEPT_ASSERT | ( | (concepts::CLinearAlgebra< DenseVector, DenseMatrix >) | ) |
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_STATIC_ASSERT | ( | (boost::is_same< Dimension, Order >::value) | ) |
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_STATIC_ASSERT | ( | (dimAmbient >=dimEmbedded) | ) |
Static dimensions.
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_STATIC_CONSTANT | ( | Dimension | , |
dimensionEmbedded | = dimEmbedded |
||
) |
DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::BOOST_STATIC_CONSTANT | ( | Dimension | , |
dimensionAmbient | = dimAmbient |
||
) |
std::string DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::className | ( | ) | const |
Get class name string "Calculus".
bool DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::containsCell | ( | const Cell & | cell | ) | const |
Check is structure contains cell.
cell | the tested cell. |
LinearOperator<Self, order, duality, order+1, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::derivative | ( | ) | const |
Derivative operator from order-forms to _(order+1)_-forms.
order | order of input k-form. |
duality | duality of input k-form. |
Dimension DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::edgeDirection | ( | const Cell & | cell, |
const Duality & | duality | ||
) | const |
Return edge direction relative to primal.
cell | Khalimsky cell. |
duality | duality. |
ConstIterator DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::end | ( | ) | const |
End const iterator.
Iterator DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::end | ( | ) |
End iterator.
bool DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::eraseCell | ( | const Cell & | cell | ) |
Manually erase cell from calculus. Should call updateIndexes() when structure modification is finished.
cell | the cell to be removed. |
KForm<Self, 1, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::flat | ( | const VectorField< Self, duality > & | vector_field | ) | const |
Construct 1-form from vector field.
duality | input vector field and output 1-form duality. |
vector_field | vector field. |
LinearOperator<Self, 0, duality, 1, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::flatDirectional | ( | const Dimension & | dir | ) | const |
Get directional flat operator that transforms 0-form containing vector field coordinates along direction dir into 1-form. Invert of sharp(1-form).coordAlongDirection(dir).
duality | input 0-form and output 1-form duality. |
dir | direction of projection. |
Index DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::getCellIndex | ( | const Cell & | cell | ) | const |
Get k-form index from cell.
cell | Khalimsky cell. |
const SCells& DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::getIndexedSCells | ( | ) | const |
Get all signed cells with specific order and duality in index order.
order | order of signed cells. |
duality | duality of signed cells. |
const Properties& DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::getProperties | ( | ) | const |
Get all cells properties.
SCell DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::getSCell | ( | const Order & | order, |
const Duality & | duality, | ||
const Index & | index | ||
) | const |
Get signed cell from k-form index.
order | k-form order. |
duality | k-form duality. |
index | index valid on a k-form container. |
LinearOperator<Self, order, duality, dimEmbedded-order, OppositeDuality<duality>::duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::hodge | ( | ) | const |
Hodge operator from duality order-form to opposite duality _(dimEmbedded-order)_-forms.
order | order of input k-form. |
duality | duality of input k-form. |
Scalar DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::hodgeSign | ( | const Cell & | cell, |
const Duality & | duality | ||
) | const |
Return sign of hodge operator. Used internally mostly.
cell | Khalimsky cell. |
duality | duality. |
LinearOperator<Self, order, duality, order, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::identity | ( | ) | const |
Identity operator from order-forms to order-forms.
order | input and output order of identity operator. |
duality | input and output duality of identity operator. |
void DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::initKSpace | ( | ConstAlias< TDomain > | domain | ) |
Init Khalimsky space boundaries.
TDomain | type of digital domain. |
domain | domain used to initialize Khalimsky space. |
bool DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::insertSCell | ( | const SCell & | signed_cell | ) |
Manually insert signed cell into calculus with unit primal and dual size. Should call updateIndexes() when structure modification is finished. Be sure to insert all adjacent lower order primal cells.
signed_cell | the signed cell to be inserted. |
bool DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::insertSCell | ( | const SCell & | signed_cell, |
const Scalar & | primal_size, | ||
const Scalar & | dual_size | ||
) |
Manually insert signed cell into calculus. Should call updateIndexes() when structure modification is finished. Be sure to insert all adjacent lower order primal cells.
signed_cell | the signed cell to be inserted. |
primal_size | size (length, area, volume, ...) of primal cell. Primal size of 0-cell should be equal to 1. |
dual_size | size (length, area, volume, ...) of dual cell. Dual size of n-cell should be equal to 1. |
bool DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::isCellFlipped | ( | const Cell & | cell | ) | const |
Check if cell is flipped in display.
cell | the tested cell. |
bool DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::isValid | ( | ) | const |
Checks the validity/consistency of the object.
Index DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::kFormLength | ( | const Order & | order, |
const Duality & | duality | ||
) | const |
Return number of elements in discrete k-form.
order | k-form order. |
duality | k-form duality. |
LinearOperator<Self, 0, duality, 0, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::laplace | ( | ) | const |
Laplace operator from duality 0-forms to duality 0-forms.
LinearOperator<Self, order, duality, order, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::reorder | ( | const TConstIterator & | begin_range, |
const TConstIterator & | end_range | ||
) | const |
Reorder operator from order-forms to order-forms. Reorder indexes from internal index order to iterator range traversal induced order.
order | input and output order of reorder operator. |
duality | input and output duality of reorder operator. |
TConstIterator | const iterator to signed cell type. |
void DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::resetSizes | ( | ) |
Reset all primal to dual cell sizes to 1.
void DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::selfDisplay | ( | std::ostream & | out | ) | const |
Writes/Displays the object on an output stream.
out | the output stream where the object is written. |
VectorField<Self, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::sharp | ( | const KForm< Self, 1, duality > & | one_form | ) | const |
Construct vector field from 1-form.
duality | input 1-form and output vector field duality. |
one_form | 1-form. |
LinearOperator<Self, 1, duality, 0, duality> DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::sharpDirectional | ( | const Dimension & | dir | ) | const |
Get directional sharp operator that transforms 1-form into 0-form containing vector field coordinates along direction dir. Equivalent to sharp(1-form).coordAlongDirection(dir).
duality | input 1-form and output 0-form duality. |
dir | direction of projection. |
|
private |
Update sharp and flat operators cache.
|
private |
Update flat operator cache.
duality | duality of updated flat operator. |
void DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::updateIndexes | ( | ) |
Update indexes for all cells. Cell insertion order == index may not be preserved.
|
private |
Update sharp operator cache.
duality | duality of updated sharp operator. |
|
friend |
Definition at line 101 of file DiscreteExteriorCalculus.h.
|
private |
Cached flat and sharp operators generation flag.
Definition at line 562 of file DiscreteExteriorCalculus.h.
|
private |
Cells properties.
Definition at line 541 of file DiscreteExteriorCalculus.h.
|
private |
Cached flat operator matrix.
Definition at line 552 of file DiscreteExteriorCalculus.h.
|
private |
Indexes generation flag.
Definition at line 567 of file DiscreteExteriorCalculus.h.
|
private |
Cells indexed by their order. Usefull for finding cell from index and order.
Definition at line 547 of file DiscreteExteriorCalculus.h.
KSpace DGtal::DiscreteExteriorCalculus< dimEmbedded, dimAmbient, TLinearAlgebraBackend, TInteger >::myKSpace |
Associated Khalimsky space.
Definition at line 285 of file DiscreteExteriorCalculus.h.
|
private |
Cached sharp operator matrix.
Definition at line 557 of file DiscreteExteriorCalculus.h.