TTK processing package for the computation of Topological Skeleton of Vector Fields. The skeleton consists of four components: critical points, 1-separatrices(including orbits), 2-separatrices, and segmentation of where cells flow to and from.
More...
|
| | TopologicalSkeleton () |
| |
| template<typename dataType, typename triangulationType> |
| int | execute (OutputCriticalPoints &outCP, Output1Separatrices &outSeps1, Output2Separatrices &outSeps2, OutputManifold &outManifold, const dataType *const vectors, const size_t vectorsMTime, const triangulationType &triangulation) |
| |
| void | setComputeCriticalPoints (const bool state) |
| |
| void | setComputeSeparatrices1 (const bool doAscending, const bool doDescending, const bool doSaddleConnectors) |
| |
| void | setComputeCycles1 (const bool doAttracting, const bool doRepelling) |
| |
| void | setComputeSeparatrices2 (const bool doAscending, const bool doDescending) |
| |
| void | setComputeSegmentation (const bool doAscending, const bool doDescending, const bool doMorseSmale) |
| |
| void | setRunSimplification (const bool state) |
| |
| void | setFullOrbits (const bool fullOrbits) |
| |
| void | setSimplificationThreshold (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) |
| |
|
| template<typename dataType, typename triangulationType> |
| int | getDescendingSeparatrices1 (const std::vector< SimplexId > &saddles, std::vector< Separatrix > &separatrices, const triangulationType &triangulation) const |
| |
| template<typename dataType, 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 | getAttractingCycles1 (std::vector< Separatrix > &separatrices, const triangulationType &triangulation) const |
| |
| template<typename triangulationType> |
| int | getRepellingCycles1 (std::vector< Separatrix > &separatrices, const triangulationType &triangulation) const |
| |
| template<typename dataType, typename triangulationType> |
| int | setSeparatrices1 (Output1Separatrices &outSeps1, const std::vector< Separatrix > &separatrices, 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 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 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, std::vector< Separatrix > &repellingOrbits, SimplexId *const morseSmaleManifold, const triangulationType &triangulation) const |
| |
| template<typename triangulationType> |
| int | setDescendingSegmentation (const std::vector< SimplexId > &minima, std::vector< Separatrix > &attractingOrbits, 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 |
| |
| 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) |
| |
TTK processing package for the computation of Topological Skeleton of Vector Fields. The skeleton consists of four components: critical points, 1-separatrices(including orbits), 2-separatrices, and segmentation of where cells flow to and from.
- Author
- Tanner Finken finke.nosp@m.nt@a.nosp@m.rizon.nosp@m.a.ed.nosp@m.u
-
Joshua A. Levine josh@.nosp@m.cs.a.nosp@m.rizon.nosp@m.a.ed.nosp@m.u
- Date
- Summer 2024.
The code implementation is largely based on the MorseSmaleComplex filter. Additionally, the user is allowed to specify a threshold to simplify down to a certain number of critical points in the DiscreteVectorField.
- See also
- ttk::MorseSmaleComplex
-
ttk::dcvf::DiscreteVectorField
-
ttk::VectorSimplification
Related publication
"Localized Evaluation for Constructing Discrete Vector Fields"
Tanner Finken, Julien Tierny, Joshua A. Levine
IEEE VIS 2024.
- See also
- ttk::TopologicalSkeleton
Online examples:
Definition at line 43 of file TopologicalSkeleton.h.