TTK processing package for the computation of Morse-Smale segmentations using Path Compression.
More...
|
| PathCompression () |
|
void | preconditionTriangulation (AbstractTriangulation *const data) |
|
template<typename triangulationType > |
int | execute (OutputSegmentation &outSegmentation, const SimplexId *const orderArray, const triangulationType &triangulation) |
| Main function for computing the Morse-Smale complex.
|
|
template<typename triangulationType > |
int | computePathCompression (SimplexId *const ascSegmentation, SimplexId *const dscSegmentation, const SimplexId *const orderArray, const triangulationType &triangulation) const |
| Compute the ascending and descending segmentation in one run.
|
|
template<typename triangulationType > |
int | computePathCompressionSingle (SimplexId *const segmentation, const bool computeAscending, const SimplexId *const orderArray, const triangulationType &triangulation) const |
| Compute the ascending or descending segmentation.
|
|
void | setComputeSegmentation (const bool doAscending, const bool doDescending, const bool doMorseSmale) |
|
template<typename triangulationType > |
int | computeMSHash (SimplexId *const morseSmaleSegmentation, const SimplexId *const ascSegmentation, const SimplexId *const dscSegmentation, const triangulationType &triangulation) const |
| Computes a MS segmentation hash.
|
|
| 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) |
|
TTK processing package for the computation of Morse-Smale segmentations using Path Compression.
- Author
- Robin G. C. Maack maack.nosp@m.@rpt.nosp@m.u.de
- Date
- May 2023.
Given an input order field, this class computes its ascending and descending segmentation by assigning every vertex to its minimum or maximum in gradient or inverse gradient direction. For convienience a hash (no hash collision detection) of both segmentations can be created to represent the Morse-Smale segmentation.
Related publication
"Parallel Computation of Piecewise Linear Morse-Smale Segmentations"
Robin G. C. Maack, Jonas Lukasczyk, Julien Tierny, Hans Hagen, Ross Maciejewski, Christoph Garth
IEEE Transactions on Visualization and Computer Graphics
- See also
- ttkPathCompression.cpp for a usage example
Online examples:
Definition at line 65 of file PathCompression.h.
template<typename triangulationType >
int ttk::PathCompression::computePathCompression |
( |
SimplexId *const |
ascSegmentation, |
|
|
SimplexId *const |
dscSegmentation, |
|
|
const SimplexId *const |
orderArray, |
|
|
const triangulationType & |
triangulation |
|
) |
| const |
Compute the ascending and descending segmentation in one run.
This function computes the ascending and descending segmentation on the order field. First, the ascending and descending segmentation is set to the largest and smallest neighbor of each vertex. Then, using path compression, the vertices are assigned to their minimum/maximum in positive/negative gradient direction.
- Template Parameters
-
triangulationType | type of triangulation |
- Parameters
-
[out] | ascSegmentation | ascending segmentation |
[out] | dscSegmentation | descending segmentation |
[in] | orderArray | order array |
[in] | triangulation | triangulation |
- Returns
- 0 on success
Definition at line 228 of file PathCompression.h.
template<typename triangulationType >
int ttk::PathCompression::computePathCompressionSingle |
( |
SimplexId *const |
segmentation, |
|
|
const bool |
computeAscending, |
|
|
const SimplexId *const |
orderArray, |
|
|
const triangulationType & |
triangulation |
|
) |
| const |
Compute the ascending or descending segmentation.
This function computes the ascending or descending segmentation on the order field. First, the ascending or descending segmentation is set to the largest or smallest neighbor of each vertex. Then, using path compression, the vertices are assigned to their minimum/maximum in positive/negative gradient direction.
- Template Parameters
-
triangulationType | type of triangulation |
- Parameters
-
[out] | segmentation | segmentation |
[in] | computeAscending | compute the ascending or descending segmentation |
[in] | orderArray | order array |
[in] | triangulation | triangulation |
- Returns
- 0 on success
Definition at line 321 of file PathCompression.h.