TTK
Loading...
Searching...
No Matches
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
ttk::DiscreteMorseSandwich Class Reference

TTK DiscreteMorseSandwich processing package. More...

#include <DiscreteMorseSandwich.h>

Inheritance diagram for ttk::DiscreteMorseSandwich:
ttk::Debug ttk::BaseClass ttk::PersistentGenerators ttkPersistentGenerators

Classes

struct  EdgeSimplex
 Simplex adaptation for edges More...
 
struct  GeneratorType
 Type for exporting persistent generators. More...
 
struct  PersistencePair
 Persistence pair struct as exported by DiscreteGradient. More...
 
struct  Simplex
 Ad-hoc struct for sorting simplices. More...
 
struct  TetraSimplex
 Simplex adaptation for tetrahedra More...
 
struct  TriangleSimplex
 Simplex adaptation for triangles More...
 

Public Member Functions

 DiscreteMorseSandwich ()
 
void preconditionTriangulation (AbstractTriangulation *const data)
 
void setInputOffsets (const SimplexId *const offsets)
 
void setComputeMinSad (const bool data)
 
void setComputeSadSad (const bool data)
 
void setComputeSadMax (const bool data)
 
template<typename triangulationType >
int buildGradient (const void *const scalars, const size_t scalarsMTime, const SimplexId *const offsets, const triangulationType &triangulation)
 
void setGradient (ttk::dcg::DiscreteGradient &&dg)
 Ugly hack to avoid a call to buildGradient()
 
ttk::dcg::DiscreteGradient && getGradient ()
 
template<typename triangulationType >
SimplexId getCellGreaterVertex (const dcg::Cell &c, const triangulationType &triangulation)
 
const std::vector< std::vector< SimplexId > > & get2SaddlesChildren () const
 
template<typename triangulationType >
int computePersistencePairs (std::vector< PersistencePair > &pairs, const SimplexId *const offsets, const triangulationType &triangulation, const bool ignoreBoundary, const bool compute2SaddlesChildren=false)
 Compute the persistence pairs from the discrete gradient.
 
- Public Member Functions inherited from ttk::Debug
 Debug ()
 
 ~Debug () override
 
virtual int setDebugLevel (const int &debugLevel)
 
int setWrapper (const Wrapper *wrapper) override
 
int printMsg (const std::string &msg, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::vector< std::string > &msgs, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printErr (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
 
int printWrn (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const double &memory, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::vector< std::vector< std::string > > &rows, const debug::Priority &priority=debug::Priority::INFO, const bool hasHeader=true, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const
 
int printMsg (const debug::Separator &separator, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const
 
void setDebugMsgPrefix (const std::string &prefix)
 
- Public Member Functions inherited from ttk::BaseClass
 BaseClass ()
 
virtual ~BaseClass ()=default
 
int getThreadNumber () const
 
virtual int setThreadNumber (const int threadNumber)
 
virtual int setWrapper (const Wrapper *wrapper)
 

Protected Types

using tripletType = std::array< SimplexId, 3 >
 Triplet type for persistence pairs.
 

Protected Member Functions

template<typename triangulationType >
std::vector< std::vector< SimplexId > > getSaddle1ToMinima (const std::vector< SimplexId > &criticalEdges, const triangulationType &triangulation) const
 Follow the descending 1-separatrices to compute the saddles -> minima association.
 
template<typename triangulationType , typename GFS , typename GFSN , typename OB >
std::vector< std::vector< SimplexId > > getSaddle2ToMaxima (const std::vector< SimplexId > &criticalCells, const GFS &getFaceStar, const GFSN &getFaceStarNumber, const OB &isOnBoundary, const triangulationType &triangulation) const
 Follow the ascending 1-separatrices to compute the saddles -> maxima association.
 
template<typename triangulationType >
void getMinSaddlePairs (std::vector< PersistencePair > &pairs, std::vector< bool > &pairedMinima, std::vector< bool > &paired1Saddles, const std::vector< SimplexId > &criticalEdges, const std::vector< SimplexId > &critEdgesOrder, const SimplexId *const offsets, const triangulationType &triangulation) const
 Compute the pairs of dimension 0.
 
template<typename triangulationType >
void getMaxSaddlePairs (std::vector< PersistencePair > &pairs, std::vector< bool > &pairedMaxima, std::vector< bool > &pairedSaddles, const std::vector< SimplexId > &criticalSaddles, const std::vector< SimplexId > &critSaddlesOrder, const std::vector< SimplexId > &critMaxsOrder, const triangulationType &triangulation) const
 Compute the pairs of dimension dim - 1.
 
template<typename triangulationType >
void getSaddleSaddlePairs (std::vector< PersistencePair > &pairs, std::vector< bool > &paired1Saddles, std::vector< bool > &paired2Saddles, const bool exportBoundaries, std::vector< GeneratorType > &boundaries, const std::vector< SimplexId > &critical1Saddles, const std::vector< SimplexId > &critical2Saddles, const std::vector< SimplexId > &crit1SaddlesOrder, const triangulationType &triangulation) const
 Compute the saddle-saddle pairs (in 3D)
 
template<typename triangulationType >
void extractCriticalCells (std::array< std::vector< SimplexId >, 4 > &criticalCellsByDim, std::array< std::vector< SimplexId >, 4 > &critCellsOrder, const SimplexId *const offsets, const triangulationType &triangulation, const bool sortEdges) const
 Extract & sort critical cell from the DiscreteGradient.
 
void displayStats (const std::vector< PersistencePair > &pairs, const std::array< std::vector< SimplexId >, 4 > &criticalCellsByDim, const std::vector< bool > &pairedMinima, const std::vector< bool > &paired1Saddles, const std::vector< bool > &paired2Saddles, const std::vector< bool > &pairedMaxima) const
 Print number of pairs, critical cells per dimension & unpaired cells.
 
void tripletsToPersistencePairs (std::vector< PersistencePair > &pairs, std::vector< bool > &pairedExtrema, std::vector< bool > &pairedSaddles, std::vector< SimplexId > &reps, std::vector< tripletType > &triplets, const SimplexId *const saddlesOrder, const SimplexId *const extremaOrder, const SimplexId pairDim) const
 Compute persistence pairs from triplets.
 
template<typename triangulationType , typename Container >
SimplexId eliminateBoundariesSandwich (const SimplexId s2, std::vector< bool > &onBoundary, std::vector< Container > &s2Boundaries, const std::vector< SimplexId > &s2Mapping, const std::vector< SimplexId > &s1Mapping, std::vector< SimplexId > &partners, std::vector< Lock > &s1Locks, std::vector< Lock > &s2Locks, const triangulationType &triangulation) const
 Detect 1-saddles paired to a given 2-saddle.
 
template<typename triangulationType >
void alloc (const triangulationType &triangulation)
 
void clear ()
 
- Protected Member Functions inherited from ttk::Debug
int printMsgInternal (const std::string &msg, const std::string &right, const std::string &filler, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsgInternal (const std::string &msg, const debug::Priority &priority, const debug::LineMode &lineMode, std::ostream &stream=std::cout) const
 
int welcomeMsg (std::ostream &stream)
 

Protected Attributes

dcg::DiscreteGradient dg_ {}
 
std::vector< SimplexIdfirstRepMin_ {}
 
std::vector< SimplexIdfirstRepMax_ {}
 
std::vector< SimplexIdedgeTrianglePartner_ {}
 
std::vector< SimplexIds2Mapping_ {}
 
std::vector< SimplexIds1Mapping_ {}
 
std::vector< EdgeSimplexcritEdges_ {}
 
std::array< std::vector< bool >, 4 > pairedCritCells_ {}
 
std::vector< bool > onBoundary_ {}
 
std::array< std::vector< SimplexId >, 4 > critCellsOrder_ {}
 
std::vector< std::vector< SimplexId > > s2Children_ {}
 
bool ComputeMinSad {true}
 
bool ComputeSadSad {true}
 
bool ComputeSadMax {true}
 
bool Compute2SaddlesChildren {false}
 
- Protected Attributes inherited from ttk::Debug
int debugLevel_
 
std::string debugMsgPrefix_
 
std::string debugMsgNamePrefix_
 
- Protected Attributes inherited from ttk::BaseClass
bool lastObject_
 
int threadNumber_
 
Wrapperwrapper_
 

Additional Inherited Members

- Static Protected Attributes inherited from ttk::Debug
static COMMON_EXPORTS debug::LineMode lastLineMode = ttk::debug::LineMode::NEW
 

Detailed Description

TTK DiscreteMorseSandwich processing package.

Author
Julien Tierny julie.nosp@m.n.ti.nosp@m.erny@.nosp@m.lip6.nosp@m..fr
Pierre Guillou pierr.nosp@m.e.gu.nosp@m.illou.nosp@m.@lip.nosp@m.6.fr
Date
January 2021.

DiscreteMorseSandwich computes a Persistence Diagram by using the Discrete Morse-Theory DiscreteGradient algorithms.

Related publication
"Discrete Morse Sandwich: Fast Computation of Persistence Diagrams for Scalar Data -- An Algorithm and A Benchmark"
Pierre Guillou, Jules Vidal, Julien Tierny
IEEE Transactions on Visualization and Computer Graphics, 2023.
arXiv:2206.13932, 2023.

See also
ttk::dcg::DiscreteGradient

Definition at line 30 of file DiscreteMorseSandwich.h.

Member Typedef Documentation

◆ tripletType

using ttk::DiscreteMorseSandwich::tripletType = std::array<SimplexId, 3>
protected

Triplet type for persistence pairs.

[0]: saddle cell id [1]: extremum 1 cell id [2]: extremum 2 cell id

Definition at line 297 of file DiscreteMorseSandwich.h.

Constructor & Destructor Documentation

◆ DiscreteMorseSandwich()

ttk::DiscreteMorseSandwich::DiscreteMorseSandwich ( )

Definition at line 3 of file DiscreteMorseSandwich.cpp.

Member Function Documentation

◆ alloc()

template<typename triangulationType >
void ttk::DiscreteMorseSandwich::alloc ( const triangulationType &  triangulation)
inlineprotected

Definition at line 430 of file DiscreteMorseSandwich.h.

◆ buildGradient()

template<typename triangulationType >
int ttk::DiscreteMorseSandwich::buildGradient ( const void *const  scalars,
const size_t  scalarsMTime,
const SimplexId *const  offsets,
const triangulationType &  triangulation 
)
inline

Definition at line 69 of file DiscreteMorseSandwich.h.

◆ clear()

void ttk::DiscreteMorseSandwich::clear ( )
inlineprotected

Definition at line 459 of file DiscreteMorseSandwich.h.

◆ computePersistencePairs()

template<typename triangulationType >
int ttk::DiscreteMorseSandwich::computePersistencePairs ( std::vector< PersistencePair > &  pairs,
const SimplexId *const  offsets,
const triangulationType &  triangulation,
const bool  ignoreBoundary,
const bool  compute2SaddlesChildren = false 
)

Compute the persistence pairs from the discrete gradient.

Precondition
buildGradient and preconditionTriangulation should be called prior to this function
Parameters
[out]pairsOutput persistence pairs
[in]offsetsOrder field
[in]triangulationPreconditionned triangulation
[in]ignoreBoundaryIgnore the boundary component
[in]compute2SaddlesChildrenExtract links between 2-saddles
Returns
0 when success

Definition at line 1120 of file DiscreteMorseSandwich.h.

◆ displayStats()

void ttk::DiscreteMorseSandwich::displayStats ( const std::vector< PersistencePair > &  pairs,
const std::array< std::vector< SimplexId >, 4 > &  criticalCellsByDim,
const std::vector< bool > &  pairedMinima,
const std::vector< bool > &  paired1Saddles,
const std::vector< bool > &  paired2Saddles,
const std::vector< bool > &  pairedMaxima 
) const
protected

Print number of pairs, critical cells per dimension & unpaired cells.

Parameters
[in]pairsComputed persistence pairs
[in]criticalCellsByDimStore critical cells ids per dimension
[in]pairedMinimaIf minima are paired
[in]paired1SaddlesIf 1-saddles are paired
[in]paired2SaddlesIf 2-saddles are paired
[in]pairedMaximaIf maxima are paired

Definition at line 117 of file DiscreteMorseSandwich.cpp.

◆ eliminateBoundariesSandwich()

template<typename triangulationType , typename Container >
SimplexId ttk::DiscreteMorseSandwich::eliminateBoundariesSandwich ( const SimplexId  s2,
std::vector< bool > &  onBoundary,
std::vector< Container > &  s2Boundaries,
const std::vector< SimplexId > &  s2Mapping,
const std::vector< SimplexId > &  s1Mapping,
std::vector< SimplexId > &  partners,
std::vector< Lock > &  s1Locks,
std::vector< Lock > &  s2Locks,
const triangulationType &  triangulation 
) const
protected

Detect 1-saddles paired to a given 2-saddle.

Adapted version of ttk::PersistentSimplexPairs::eliminateBoundaries()

Parameters
[in]s2Input 2-saddle (critical triangle)
[in,out]onBoundaryPropagation mask
[in,out]s2BoundariesBoundaries storage (compact)
[in]s1MappingFrom edge id to 1-saddle compact id in s1Locks
[in]s2MappingFrom triangle id to compact id in s2Boundaries and s2Locks
[in]partnersGet 2-saddles paired to 1-saddles on boundary
[in]s1LocksVector of locks over 1-saddles
[in]s2LocksVector of locks over 2-saddles
[in]triangulationSimplicial complex
Returns
Identifier of paired 1-saddle or -1

Definition at line 730 of file DiscreteMorseSandwich.h.

◆ extractCriticalCells()

template<typename triangulationType >
void ttk::DiscreteMorseSandwich::extractCriticalCells ( std::array< std::vector< SimplexId >, 4 > &  criticalCellsByDim,
std::array< std::vector< SimplexId >, 4 > &  critCellsOrder,
const SimplexId *const  offsets,
const triangulationType &  triangulation,
const bool  sortEdges 
) const
protected

Extract & sort critical cell from the DiscreteGradient.

Parameters
[out]criticalCellsByDimStore critical cells ids per dimension
[out]critCellsOrderFiltration order on critical cells
[in]offsetsVertex offset field
[in]triangulationTriangulation
[in]sortEdgesSort all edges vs. only 1-saddles

Definition at line 1008 of file DiscreteMorseSandwich.h.

◆ get2SaddlesChildren()

const std::vector< std::vector< SimplexId > > & ttk::DiscreteMorseSandwich::get2SaddlesChildren ( ) const
inline

Definition at line 108 of file DiscreteMorseSandwich.h.

◆ getCellGreaterVertex()

template<typename triangulationType >
SimplexId ttk::DiscreteMorseSandwich::getCellGreaterVertex ( const dcg::Cell c,
const triangulationType &  triangulation 
)
inline

Definition at line 102 of file DiscreteMorseSandwich.h.

◆ getGradient()

ttk::dcg::DiscreteGradient && ttk::DiscreteMorseSandwich::getGradient ( )
inline

Definition at line 96 of file DiscreteMorseSandwich.h.

◆ getMaxSaddlePairs()

template<typename triangulationType >
void ttk::DiscreteMorseSandwich::getMaxSaddlePairs ( std::vector< PersistencePair > &  pairs,
std::vector< bool > &  pairedMaxima,
std::vector< bool > &  pairedSaddles,
const std::vector< SimplexId > &  criticalSaddles,
const std::vector< SimplexId > &  critSaddlesOrder,
const std::vector< SimplexId > &  critMaxsOrder,
const triangulationType &  triangulation 
) const
protected

Compute the pairs of dimension dim - 1.

Parameters
[out]pairsOutput persistence pairs
[in]pairedMaximaIf maxima are paired
[in]pairedSaddlesIf 2-saddles (or 1-saddles in 2D) are paired
[in]criticalSaddlesList of 2-saddles (or 1-saddles in 2D)
[in]critSaddlesOrderFiltration order on critical saddles
[in]critMaxsOrderFiltration order on maxima
[in]triangulationTriangulation

Definition at line 638 of file DiscreteMorseSandwich.h.

◆ getMinSaddlePairs()

template<typename triangulationType >
void ttk::DiscreteMorseSandwich::getMinSaddlePairs ( std::vector< PersistencePair > &  pairs,
std::vector< bool > &  pairedMinima,
std::vector< bool > &  paired1Saddles,
const std::vector< SimplexId > &  criticalEdges,
const std::vector< SimplexId > &  critEdgesOrder,
const SimplexId *const  offsets,
const triangulationType &  triangulation 
) const
protected

Compute the pairs of dimension 0.

Parameters
[out]pairsOutput persistence pairs
[in]pairedMinimaIf minima are paired
[in]paired1SaddlesIf 1-saddles (or maxima in 1D) are paired
[in]criticalEdgesList of 1-saddles (or maxima in 1D)
[in]critEdgesOrderFiltration order on critical edges
[in]offsetsVertex offset field
[in]triangulationTriangulation

Definition at line 591 of file DiscreteMorseSandwich.h.

◆ getSaddle1ToMinima()

template<typename triangulationType >
std::vector< std::vector< SimplexId > > ttk::DiscreteMorseSandwich::getSaddle1ToMinima ( const std::vector< SimplexId > &  criticalEdges,
const triangulationType &  triangulation 
) const
protected

Follow the descending 1-separatrices to compute the saddles -> minima association.

Parameters
[in]criticalEdgesCritical edges identifiers
[in]triangulationTriangulation
Returns
a vector of minima per 1-saddle

Definition at line 494 of file DiscreteMorseSandwich.h.

◆ getSaddle2ToMaxima()

template<typename triangulationType , typename GFS , typename GFSN , typename OB >
std::vector< std::vector< SimplexId > > ttk::DiscreteMorseSandwich::getSaddle2ToMaxima ( const std::vector< SimplexId > &  criticalCells,
const GFS &  getFaceStar,
const GFSN &  getFaceStarNumber,
const OB &  isOnBoundary,
const triangulationType &  triangulation 
) const
protected

Follow the ascending 1-separatrices to compute the saddles -> maxima association.

Parameters
[in]criticalCellsCritical cells identifiers
[in]getFaceStarEither getEdgeStar (in 2D) or getTriangleStar (in 3D)
[in]getFaceStarNumberEither getEdgeStarNumber (in 2D) or getTriangleStarNumber (in 3D)
[in]isOnBoundaryEither isEdgeOnBoundary (in 2D) or isTriangleOnBoundary (in 3D)
[in]triangulationTriangulation
Returns
a vector of maxima per 2-saddle

Definition at line 537 of file DiscreteMorseSandwich.h.

◆ getSaddleSaddlePairs()

template<typename triangulationType >
void ttk::DiscreteMorseSandwich::getSaddleSaddlePairs ( std::vector< PersistencePair > &  pairs,
std::vector< bool > &  paired1Saddles,
std::vector< bool > &  paired2Saddles,
const bool  exportBoundaries,
std::vector< GeneratorType > &  boundaries,
const std::vector< SimplexId > &  critical1Saddles,
const std::vector< SimplexId > &  critical2Saddles,
const std::vector< SimplexId > &  crit1SaddlesOrder,
const triangulationType &  triangulation 
) const
protected

Compute the saddle-saddle pairs (in 3D)

Parameters
[out]pairsOutput persistence pairs
[in]paired1SaddlesIf 1-saddles are paired
[in]paired2SaddlesIf 2-saddles are paired
[in]exportBoundariesIf 2-saddles boundaries must be exported
[out]boundariesVector of 2-saddles boundaries
[in]critical1SaddlesFull list of 1-saddles
[in]critical2SaddlesFull list of 2-saddles
[in]crit1SaddlesOrderFiltration order on 1-saddles
[in]triangulationTriangulation

Definition at line 879 of file DiscreteMorseSandwich.h.

◆ preconditionTriangulation()

void ttk::DiscreteMorseSandwich::preconditionTriangulation ( AbstractTriangulation *const  data)
inline

Definition at line 50 of file DiscreteMorseSandwich.h.

◆ setComputeMinSad()

void ttk::DiscreteMorseSandwich::setComputeMinSad ( const bool  data)
inline

Definition at line 58 of file DiscreteMorseSandwich.h.

◆ setComputeSadMax()

void ttk::DiscreteMorseSandwich::setComputeSadMax ( const bool  data)
inline

Definition at line 64 of file DiscreteMorseSandwich.h.

◆ setComputeSadSad()

void ttk::DiscreteMorseSandwich::setComputeSadSad ( const bool  data)
inline

Definition at line 61 of file DiscreteMorseSandwich.h.

◆ setGradient()

void ttk::DiscreteMorseSandwich::setGradient ( ttk::dcg::DiscreteGradient &&  dg)
inline

Ugly hack to avoid a call to buildGradient()

An externally computed gradient can be retrofitted into this class using move semantics with setGradient(). The internal gradient can be fetched back with getGradient() once the persistence pairs are computed . c.f. ttk::MorseSmaleComplex::returnSaddleConnectors

Parameters
[in]dgExternal gradient instance

Definition at line 91 of file DiscreteMorseSandwich.h.

◆ setInputOffsets()

void ttk::DiscreteMorseSandwich::setInputOffsets ( const SimplexId *const  offsets)
inline

Definition at line 54 of file DiscreteMorseSandwich.h.

◆ tripletsToPersistencePairs()

void ttk::DiscreteMorseSandwich::tripletsToPersistencePairs ( std::vector< PersistencePair > &  pairs,
std::vector< bool > &  pairedExtrema,
std::vector< bool > &  pairedSaddles,
std::vector< SimplexId > &  reps,
std::vector< tripletType > &  triplets,
const SimplexId *const  saddlesOrder,
const SimplexId *const  extremaOrder,
const SimplexId  pairDim 
) const
protected

Compute persistence pairs from triplets.

Parameters
[out]pairsStore generated persistence pairs
[in,out]pairedExtremaIf critical extrema are paired
[in,out]pairedSaddlesIf critical saddles are paired
[in,out]repsExtrema representatives
[in]tripletsInput triplets (saddle, extremum, extremum)
[in]saddlesOrderOrder on saddles
[in]extremaOrderOrder on extrema
[in]pairDimPair birth simplex dimension

Definition at line 7 of file DiscreteMorseSandwich.cpp.

Member Data Documentation

◆ Compute2SaddlesChildren

bool ttk::DiscreteMorseSandwich::Compute2SaddlesChildren {false}
protected

Definition at line 488 of file DiscreteMorseSandwich.h.

◆ ComputeMinSad

bool ttk::DiscreteMorseSandwich::ComputeMinSad {true}
protected

Definition at line 485 of file DiscreteMorseSandwich.h.

◆ ComputeSadMax

bool ttk::DiscreteMorseSandwich::ComputeSadMax {true}
protected

Definition at line 487 of file DiscreteMorseSandwich.h.

◆ ComputeSadSad

bool ttk::DiscreteMorseSandwich::ComputeSadSad {true}
protected

Definition at line 486 of file DiscreteMorseSandwich.h.

◆ critCellsOrder_

std::array<std::vector<SimplexId>, 4> ttk::DiscreteMorseSandwich::critCellsOrder_ {}
mutableprotected

Definition at line 482 of file DiscreteMorseSandwich.h.

◆ critEdges_

std::vector<EdgeSimplex> ttk::DiscreteMorseSandwich::critEdges_ {}
mutableprotected

Definition at line 479 of file DiscreteMorseSandwich.h.

◆ dg_

dcg::DiscreteGradient ttk::DiscreteMorseSandwich::dg_ {}
protected

Definition at line 474 of file DiscreteMorseSandwich.h.

◆ edgeTrianglePartner_

std::vector<SimplexId> ttk::DiscreteMorseSandwich::edgeTrianglePartner_ {}
protected

Definition at line 478 of file DiscreteMorseSandwich.h.

◆ firstRepMax_

std::vector<SimplexId> ttk::DiscreteMorseSandwich::firstRepMax_ {}
protected

Definition at line 477 of file DiscreteMorseSandwich.h.

◆ firstRepMin_

std::vector<SimplexId> ttk::DiscreteMorseSandwich::firstRepMin_ {}
mutableprotected

Definition at line 477 of file DiscreteMorseSandwich.h.

◆ onBoundary_

std::vector<bool> ttk::DiscreteMorseSandwich::onBoundary_ {}
mutableprotected

Definition at line 481 of file DiscreteMorseSandwich.h.

◆ pairedCritCells_

std::array<std::vector<bool>, 4> ttk::DiscreteMorseSandwich::pairedCritCells_ {}
mutableprotected

Definition at line 480 of file DiscreteMorseSandwich.h.

◆ s1Mapping_

std::vector<SimplexId> ttk::DiscreteMorseSandwich::s1Mapping_ {}
protected

Definition at line 478 of file DiscreteMorseSandwich.h.

◆ s2Children_

std::vector<std::vector<SimplexId> > ttk::DiscreteMorseSandwich::s2Children_ {}
mutableprotected

Definition at line 483 of file DiscreteMorseSandwich.h.

◆ s2Mapping_

std::vector<SimplexId> ttk::DiscreteMorseSandwich::s2Mapping_ {}
protected

Definition at line 478 of file DiscreteMorseSandwich.h.


The documentation for this class was generated from the following files: