TTK
|
TTK processing package for the computation of Morse-Smale complexes. More...
#include <MorseSmaleComplex.h>
Classes | |
struct | Output1Separatrices |
1-Separatrices point and cell data arrays More... | |
struct | Output2Separatrices |
2-Separatrices point and cell data arrays More... | |
struct | OutputCriticalPoints |
Critical points data arrays. More... | |
struct | OutputManifold |
Pointers to pre-allocated segmentation point data arrays. More... | |
struct | Separatrix |
Public Member Functions | |
MorseSmaleComplex () | |
template<typename dataType , typename triangulationType > | |
int | execute (OutputCriticalPoints &outCP, Output1Separatrices &outSeps1, Output2Separatrices &outSeps2, OutputManifold &outManifold, const dataType *const scalars, const size_t scalarsMTime, const SimplexId *const offsets, const triangulationType &triangulation) |
void | setComputeCriticalPoints (const bool state) |
void | setComputeSeparatrices1 (const bool doAscending, const bool doDescending, const bool doSaddleConnectors) |
void | setComputeSeparatrices2 (const bool doAscending, const bool doDescending) |
void | setComputeSegmentation (const bool doAscending, const bool doDescending, const bool doMorseSmale) |
void | setReturnSaddleConnectors (const bool state) |
void | setSaddleConnectorsPersistenceThreshold (const double threshold) |
void | preconditionTriangulation (AbstractTriangulation *const data) |
![]() | |
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) |
![]() | |
BaseClass () | |
virtual | ~BaseClass ()=default |
int | getThreadNumber () const |
virtual int | setThreadNumber (const int threadNumber) |
Protected Member Functions | |
template<typename triangulationType > | |
int | getDescendingSeparatrices1 (const std::vector< SimplexId > &saddles, std::vector< Separatrix > &separatrices, const triangulationType &triangulation) const |
template<typename triangulationType > | |
int | getAscendingSeparatrices1 (const std::vector< SimplexId > &saddles, std::vector< Separatrix > &separatrices, const triangulationType &triangulation) const |
template<typename triangulationType > | |
int | getSaddleConnectors (const std::vector< SimplexId > &saddles2, std::vector< Separatrix > &separatrices, const triangulationType &triangulation) const |
template<typename triangulationType > | |
int | setSeparatrices1 (Output1Separatrices &outSeps1, const std::vector< Separatrix > &separatrices, const SimplexId *const offsets, const triangulationType &triangulation) const |
template<typename triangulationType > | |
int | getDescendingSeparatrices2 (const std::vector< SimplexId > &saddles2, std::vector< Separatrix > &separatrices, std::vector< std::vector< SimplexId > > &separatricesSaddles, const triangulationType &triangulation) const |
template<typename triangulationType > | |
int | setDescendingSeparatrices2 (Output2Separatrices &outSeps2, const std::vector< Separatrix > &separatrices, const std::vector< std::vector< SimplexId > > &separatricesSaddles, const SimplexId *const offsets, const triangulationType &triangulation) const |
template<typename triangulationType > | |
int | getDualPolygon (const SimplexId edgeId, SimplexId *const polygon, const size_t polSize, const triangulationType &triangulation) const |
template<typename triangulationType > | |
int | sortDualPolygonVertices (SimplexId *const polygon, const size_t polSize, const triangulationType &triangulation) const |
template<typename triangulationType > | |
int | getAscendingSeparatrices2 (const std::vector< SimplexId > &saddles1, std::vector< Separatrix > &separatrices, std::vector< std::vector< SimplexId > > &separatricesSaddles, const triangulationType &triangulation) const |
template<typename triangulationType > | |
int | setAscendingSeparatrices2 (Output2Separatrices &outSeps2, const std::vector< Separatrix > &separatrices, const std::vector< std::vector< SimplexId > > &separatricesSaddles, const SimplexId *const offsets, const triangulationType &triangulation) const |
void | flattenSeparatricesVectors (std::vector< std::vector< Separatrix > > &separatrices) const |
Flatten the vectors of vectors into their first component. | |
template<typename triangulationType > | |
int | setAscendingSegmentation (const std::vector< SimplexId > &maxima, SimplexId *const morseSmaleManifold, const triangulationType &triangulation) const |
template<typename triangulationType > | |
int | setDescendingSegmentation (const std::vector< SimplexId > &minima, SimplexId *const morseSmaleManifold, const triangulationType &triangulation) const |
template<typename triangulationType > | |
int | setFinalSegmentation (const SimplexId numberOfMaxima, const SimplexId *const ascendingManifold, const SimplexId *const descendingManifold, SimplexId *const morseSmaleManifold, const triangulationType &triangulation) const |
template<typename dataType , typename triangulationType > | |
int | returnSaddleConnectors (const double persistenceThreshold, const dataType *const scalars, const SimplexId *const offsets, const triangulationType &triangulation) |
![]() | |
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 | discreteGradient_ {} |
bool | ComputeCriticalPoints {true} |
bool | ComputeAscendingSeparatrices1 {true} |
bool | ComputeDescendingSeparatrices1 {true} |
bool | ComputeSaddleConnectors {true} |
bool | ComputeAscendingSeparatrices2 {false} |
bool | ComputeDescendingSeparatrices2 {false} |
bool | ComputeAscendingSegmentation {true} |
bool | ComputeDescendingSegmentation {true} |
bool | ComputeFinalSegmentation {true} |
bool | ReturnSaddleConnectors {false} |
double | SaddleConnectorsPersistenceThreshold {} |
bool | ThresholdIsAbsolute {false} |
bool | ForceLoopFreeGradient {true} |
![]() | |
int | debugLevel_ |
std::string | debugMsgPrefix_ |
std::string | debugMsgNamePrefix_ |
![]() | |
bool | lastObject_ |
int | threadNumber_ |
Wrapper * | wrapper_ |
Additional Inherited Members | |
![]() | |
static COMMON_EXPORTS debug::LineMode | lastLineMode = ttk::debug::LineMode::NEW |
TTK processing package for the computation of Morse-Smale complexes.
Related publications
"The Topology ToolKit"
Julien Tierny, Guillaume Favelier, Joshua Levine, Charles Gueunet, Michael Michaux
IEEE Transactions on Visualization and Computer Graphics (Proc. of IEEE VIS 2017)
"Parallel Computation of 3D Morse-Smale Complexes"
Nithin Shivashankar, Vijay Natarajan
Proc. of EuroVis 2012.
Computer Graphics Forum, 2012.
Online examples:
Definition at line 90 of file MorseSmaleComplex.h.
ttk::MorseSmaleComplex::MorseSmaleComplex | ( | ) |
Definition at line 3 of file MorseSmaleComplex.cpp.
|
inline |
Main function for computing the Morse-Smale complex.
Definition at line 428 of file MorseSmaleComplex.h.
|
protected |
Flatten the vectors of vectors into their first component.
Definition at line 7 of file MorseSmaleComplex.cpp.
|
protected |
Compute the ascending 1-separatrices by reading into the discrete gradient.
Definition at line 676 of file MorseSmaleComplex.h.
|
protected |
Compute the 2-separatrices by reading into the discrete gradient from the minima.
Definition at line 937 of file MorseSmaleComplex.h.
|
protected |
Compute the descending 1-separatrices by reading into the discrete gradient.
Definition at line 631 of file MorseSmaleComplex.h.
|
protected |
Compute the 2-separatrices by reading into the discrete gradient from the maxima.
Definition at line 978 of file MorseSmaleComplex.h.
|
protected |
Find all tetras in the star of edgeId
(primal: star of edgeId -> dual: vertices of polygon)
Definition at line 1021 of file MorseSmaleComplex.h.
|
protected |
Compute the saddle-connectors by reading into the discrete gradient.
Definition at line 734 of file MorseSmaleComplex.h.
|
inline |
Set the input triangulation and preprocess the needed mesh traversal queries.
Definition at line 239 of file MorseSmaleComplex.h.
|
protected |
Definition at line 1714 of file MorseSmaleComplex.h.
|
protected |
Compute the ascending manifold of the maxima.
Definition at line 1476 of file MorseSmaleComplex.h.
|
protected |
Compute the geometrical embedding of the ascending 2-separatrices.
Definition at line 1072 of file MorseSmaleComplex.h.
|
inline |
Enable/Disable computation of the geometrical embedding of the critical points.
Definition at line 181 of file MorseSmaleComplex.h.
|
inline |
Enable/Disable computation of the geometrical embedding of the manifolds of the critical points.
Definition at line 208 of file MorseSmaleComplex.h.
|
inline |
Enable/Disable computation of the geometrical embedding of the 1-separatrices.
Definition at line 188 of file MorseSmaleComplex.h.
|
inline |
Enable/Disable computation of the geometrical embedding of the 2-separatrices (disabled by default).
Definition at line 199 of file MorseSmaleComplex.h.
|
protected |
Compute the descending manifold of the minima.
Definition at line 1584 of file MorseSmaleComplex.h.
|
protected |
Compute the geometrical embedding of the descending 2-separatrices.
Definition at line 1292 of file MorseSmaleComplex.h.
|
protected |
Compute the final combinatorial Morse-Smale complex segmentation.
Definition at line 1648 of file MorseSmaleComplex.h.
|
inline |
Enable/Disable post-processing gradient reversal of the (saddle,...,saddle) vpaths under a given persistence threshold (disabled by default).
Definition at line 221 of file MorseSmaleComplex.h.
|
inline |
Set the threshold value for post-processing of (saddle,...,saddle) vpaths gradient reversal (default value is 0.0).
Definition at line 231 of file MorseSmaleComplex.h.
|
protected |
Compute the geometrical embedding of the 1-separatrices.
Definition at line 796 of file MorseSmaleComplex.h.
|
protected |
Sort the polygon vertices to be clockwise
Definition at line 1037 of file MorseSmaleComplex.h.
|
protected |
Definition at line 412 of file MorseSmaleComplex.h.
|
protected |
Definition at line 407 of file MorseSmaleComplex.h.
|
protected |
Definition at line 410 of file MorseSmaleComplex.h.
|
protected |
Definition at line 406 of file MorseSmaleComplex.h.
|
protected |
Definition at line 413 of file MorseSmaleComplex.h.
|
protected |
Definition at line 408 of file MorseSmaleComplex.h.
|
protected |
Definition at line 411 of file MorseSmaleComplex.h.
|
protected |
Definition at line 414 of file MorseSmaleComplex.h.
|
protected |
Definition at line 409 of file MorseSmaleComplex.h.
|
protected |
Definition at line 404 of file MorseSmaleComplex.h.
|
protected |
Definition at line 419 of file MorseSmaleComplex.h.
|
protected |
Definition at line 416 of file MorseSmaleComplex.h.
|
protected |
Definition at line 417 of file MorseSmaleComplex.h.
|
protected |
Definition at line 418 of file MorseSmaleComplex.h.