|
TTK
|
#include <MergeTree.h>
Public Member Functions | |
| MergeTree (std::shared_ptr< Params > params, std::shared_ptr< Scalars > scalars, TreeType type, idPartition part=nullPartition) | |
| ~MergeTree () override | |
| template<typename triangulationType > | |
| void | initNbScalars (const triangulationType &tri) |
| void | initTreeType () |
| init the type of the current tree from params | |
| template<typename scalarType > | |
| void | sortInput () |
| if sortedVertices_ is null, define and fill it Also fill the mirror std::vector | |
| void | flush () |
| clear local data for new computation | |
| int | setDebugLevel (const int &local_debugLevel) override |
| void | setTreeType (const int &local_treeType) |
| void | setSimplificationMethod (const int &local_simplifyMethod) |
| void | setSimplificationThreshold (const double &local_simplificationThreshold) |
| void | setScalars (void *local_scalars) |
| void | preconditionTriangulation (AbstractTriangulation *const m, const bool preproc=true) |
| idPartition | getPartition () const |
| template<typename scalarType > | |
| const scalarType & | getValue (const SimplexId &nodeId) const |
| template<typename scalarType > | |
| void | setVertexScalars (scalarType *vals) |
| void | setVertexSoSoffsets (const SimplexId *const offsets) |
| idSuperArc | getNumberOfSuperArcs () const |
| idSuperArc | getNumberOfVisibleArcs () const |
| const std::vector< SuperArc > & | getSuperArc () const |
| SuperArc * | getSuperArc (const idSuperArc &i) |
| SimplexId | getNumberOfVisibleRegularNode (const idSuperArc &sa) |
| void | addCrossingAbove (const idSuperArc &sa) |
| idNode | getNumberOfNodes () const |
| const std::vector< Node > & | getNodes () const |
| Node * | getNode (const idNode &nodeId) |
| SimplexId | getNumberOfLeaves () const |
| const std::vector< idNode > & | getLeaves () const |
| const idNode & | getLeave (const idNode &id) const |
| const std::vector< idNode > & | getRoots () const |
| void | setVert2Tree (decltype(treeData_.vert2tree) const &vect2tree) |
| bool | isCorrespondingArc (const SimplexId &val) const |
| bool | isCorrespondingNode (const SimplexId &val) const |
| bool | isCorrespondingNull (const SimplexId &val) const |
| idNode | getCorrespondingNodeId (const SimplexId &val) const |
| idSuperArc | getCorrespondingSuperArcId (const SimplexId &val) const |
| SuperArc * | vertex2SuperArc (const SimplexId &vert) |
| Node * | vertex2Node (const SimplexId &vert) |
| void | updateCorrespondingArc (const SimplexId &arc, const idSuperArc &val) |
| void | updateCorrespondingNode (const SimplexId &vert, const idNode &val) |
| idCorresp | idNode2corr (const idNode &id) const |
| idNode | corr2idNode (const idCorresp &corr) const |
| template<typename triangulationType > | |
| void | processVertex (const SimplexId &vertex, std::vector< ExtendedUnionFind * > &vect_baseUF, const bool overlapB, const bool overlapA, const triangulationType &mesh, DebugTimer &begin) |
| template<typename triangulationType > | |
| int | build (std::vector< ExtendedUnionFind * > &vect_baseUF, const std::vector< SimplexId > &overlapBefore, const std::vector< SimplexId > &overlapAfter, SimplexId start, SimplexId end, const SimplexId &posSeed0, const SimplexId &posSeed1, const triangulationType &mesh) |
| Compute the merge tree using Carr's algorithm. | |
| template<typename scalarType > | |
| SimplexId | localSimplify (const SimplexId &podSeed0, const SimplexId &podSeed1, std::list< std::vector< std::pair< SimplexId, bool > > > &storage) |
| template<typename scalarType , typename triangulationType > | |
| SimplexId | globalSimplify (const SimplexId posSeed0, const SimplexId posSeed1, std::list< std::vector< std::pair< SimplexId, bool > > > &storage, const triangulationType &mesh) |
| template<typename scalarType > | |
| SimplexId | simplifyTree (const SimplexId &posSeed0, const SimplexId &posSeed1, std::list< std::vector< std::pair< SimplexId, bool > > > &storage, const std::vector< std::tuple< SimplexId, SimplexId, scalarType, bool > > &sortedPairs) |
| void | markThisArc (std::vector< ExtendedUnionFind * > &ufArray, const idNode &curNodeId, const idSuperArc &mergingArcId, const idNode &parentNodeId) |
| template<typename scalarType , typename triangulationType > | |
| int | computePersistencePairs (std::vector< std::tuple< SimplexId, SimplexId, scalarType > > &pairs, const triangulationType &mesh) |
| template<typename scalarType , typename triangulationType > | |
| int | computePersistencePairs (std::vector< std::tuple< SimplexId, SimplexId, scalarType, bool > > &pairs, const triangulationType &mesh) |
| template<typename scalarType , typename triangulationType > | |
| void | recoverMTPairs (const std::vector< idNode > &sortedNodes, std::vector< std::tuple< SimplexId, SimplexId, scalarType, bool > > &pairsJT, std::vector< std::tuple< SimplexId, SimplexId, scalarType, bool > > &pairsST, const triangulationType &mesh) |
| idSuperArc | openSuperArc (const idNode &downNodeId, const bool overlapB, const bool overlapA) |
| idSuperArc | makeSuperArc (const idNode &downNodeId, const idNode &upNodeId, const bool overlapB, const bool overlapA, std::pair< SimplexId, bool > *vertexList=nullptr, SimplexId vertexSize=-1) |
| void | closeSuperArc (const idSuperArc &superArcId, const idNode &upNodeId, const bool overlapB, const bool overlapA) |
| void | hideArc (const idSuperArc &sa) |
| void | mergeArc (const idSuperArc &sa, const idSuperArc &recept, const bool changeConnectivity=true) |
| SimplexId | insertNodeAboveSeed (const idSuperArc &arc, const std::pair< SimplexId, bool > &seed) |
| SimplexId | getVertBelowSeed (const idSuperArc &arc, const std::pair< SimplexId, bool > &seed, const std::vector< idCorresp > &vert2treeOther) |
| bool | alreadyExtLinked (const idNode &node, const idPartition &tree, const idNode &treeNode) |
| idSuperArc | getNumberOfExternalDownArcs (const idNode &node) |
| void | removeHiddenDownArcs (const idNode &n) |
| void | removeInternalDownArcs (const idNode &node) |
| idSuperArc | getNumberOfVisibleArcs (const idNode &n) |
| idSuperArc | getNumberOfUnmergedDownArcs (const idNode &n) |
| idNode | makeNode (const SimplexId &vertexId, const SimplexId &linked=nullVertex) |
| idNode | makeNode (const Node *const n, const SimplexId &linked=nullVertex) |
| idSuperArc | insertNode (Node *node, const bool segment) |
| idSuperArc | reverseInsertNode (Node *node, const bool segment) |
| Node * | getDownNode (const SuperArc *a) |
| Node * | getUpNode (const SuperArc *a) |
| idNode | getParent (const idNode &n) |
| void | delNode (const idNode &node, std::list< std::vector< std::pair< SimplexId, bool > > > &storage, const std::pair< SimplexId, bool > *mv=nullptr, const SimplexId &nbm=0) |
| void | hideNode (const idNode &node) |
| std::vector< idNode > | getNodeNeighbors (const idNode &node) |
| std::vector< idNode > | getNodeUpNeighbors (const idNode &n) |
| std::vector< idNode > | getNodeDownNeighbors (const idNode &n) |
| void | hideAndClearArcsAbove (const idNode &baseNode) |
| void | hideAndClearArcsBelow (const idNode &baseNode, const SimplexId &seed) |
| idSuperArc | hideAndClearLeadingTo (const idNode &baseNode, const SimplexId &v) |
| void | updateSegmentation () |
| void | parallelUpdateSegmentation (const bool ct=false) |
| void | parallelInitNodeValence (const int nbThreadValence) |
| void | printTree2 () |
| std::string | printArc (const idSuperArc &a) |
| std::string | printNode (const idNode &n) |
| std::shared_ptr< MergeTree > | clone () const |
| void | clone (const MergeTree *mt) |
| void | doSwap (MergeTree *mt) |
Public Member Functions inherited from ttk::Debug | |
| Debug () | |
| ~Debug () override | |
| 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) |
Protected Member Functions | |
| bool | isLower (const SimplexId &a, const SimplexId &b) const |
| bool | isHigher (const SimplexId &a, const SimplexId &b) const |
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 | |
| std::shared_ptr< Params > | params_ |
| std::shared_ptr< Scalars > | scalars_ |
| TreeData | treeData_ |
| std::list< ExtendedUnionFind > | storageEUF_ |
Protected Attributes inherited from ttk::Debug | |
| int | debugLevel_ |
| std::string | debugMsgPrefix_ |
| std::string | debugMsgNamePrefix_ |
Protected Attributes inherited from ttk::BaseClass | |
| bool | lastObject_ |
| int | threadNumber_ |
| Wrapper * | wrapper_ |
Friends | |
| class | ContourForests |
| class | ContourForestsTree |
Additional Inherited Members | |
Static Protected Attributes inherited from ttk::Debug | |
| static COMMON_EXPORTS debug::LineMode | lastLineMode = ttk::debug::LineMode::NEW |
Definition at line 37 of file MergeTree.h.
| MergeTree::MergeTree | ( | std::shared_ptr< Params > | params, |
| std::shared_ptr< Scalars > | scalars, | ||
| TreeType | type, | ||
| idPartition | part = nullPartition |
||
| ) |
Definition at line 16 of file MergeTree.cpp.
|
overridedefault |
|
inline |
Definition at line 225 of file MergeTree.h.
| bool MergeTree::alreadyExtLinked | ( | const idNode & | node, |
| const idPartition & | tree, | ||
| const idNode & | treeNode | ||
| ) |
Definition at line 467 of file MergeTree.cpp.
| int ttk::cf::MergeTree::build | ( | std::vector< ExtendedUnionFind * > & | vect_baseUF, |
| const std::vector< SimplexId > & | overlapBefore, | ||
| const std::vector< SimplexId > & | overlapAfter, | ||
| SimplexId | start, | ||
| SimplexId | end, | ||
| const SimplexId & | posSeed0, | ||
| const SimplexId & | posSeed1, | ||
| const triangulationType & | mesh | ||
| ) |
Compute the merge tree using Carr's algorithm.
Definition at line 826 of file MergeTreeTemplate.h.
| std::shared_ptr< MergeTree > MergeTree::clone | ( | ) | const |
Definition at line 1006 of file MergeTree.cpp.
| void MergeTree::clone | ( | const MergeTree * | mt | ) |
Definition at line 1021 of file MergeTree.cpp.
| void MergeTree::closeSuperArc | ( | const idSuperArc & | superArcId, |
| const idNode & | upNodeId, | ||
| const bool | overlapB, | ||
| const bool | overlapA | ||
| ) |
Definition at line 261 of file MergeTree.cpp.
| int ttk::cf::MergeTree::computePersistencePairs | ( | std::vector< std::tuple< SimplexId, SimplexId, scalarType > > & | pairs, |
| const triangulationType & | mesh | ||
| ) |
Definition at line 486 of file MergeTreeTemplate.h.
| int ttk::cf::MergeTree::computePersistencePairs | ( | std::vector< std::tuple< SimplexId, SimplexId, scalarType, bool > > & | pairs, |
| const triangulationType & | mesh | ||
| ) |
Definition at line 517 of file MergeTreeTemplate.h.
Definition at line 363 of file MergeTree.h.
| void MergeTree::delNode | ( | const idNode & | node, |
| std::list< std::vector< std::pair< SimplexId, bool > > > & | storage, | ||
| const std::pair< SimplexId, bool > * | mv = nullptr, |
||
| const SimplexId & | nbm = 0 |
||
| ) |
Definition at line 540 of file MergeTree.cpp.
| void MergeTree::doSwap | ( | MergeTree * | mt | ) |
Definition at line 1032 of file MergeTree.cpp.
|
inline |
clear local data for new computation
Definition at line 87 of file MergeTree.h.
Definition at line 310 of file MergeTree.h.
|
inline |
Definition at line 321 of file MergeTree.h.
Definition at line 814 of file MergeTree.cpp.
Definition at line 261 of file MergeTree.h.
|
inline |
Definition at line 256 of file MergeTree.h.
Definition at line 244 of file MergeTree.h.
Definition at line 869 of file MergeTree.cpp.
Definition at line 827 of file MergeTree.cpp.
|
inline |
Definition at line 239 of file MergeTree.h.
Definition at line 853 of file MergeTree.cpp.
| idSuperArc MergeTree::getNumberOfExternalDownArcs | ( | const idNode & | node | ) |
Definition at line 452 of file MergeTree.cpp.
|
inline |
Definition at line 252 of file MergeTree.h.
|
inline |
Definition at line 235 of file MergeTree.h.
|
inline |
Definition at line 183 of file MergeTree.h.
| idSuperArc MergeTree::getNumberOfUnmergedDownArcs | ( | const idNode & | n | ) |
Definition at line 436 of file MergeTree.cpp.
|
inline |
Definition at line 187 of file MergeTree.h.
| idSuperArc MergeTree::getNumberOfVisibleArcs | ( | const idNode & | n | ) |
Definition at line 413 of file MergeTree.cpp.
|
inline |
Definition at line 212 of file MergeTree.h.
Definition at line 822 of file MergeTree.cpp.
|
inline |
Definition at line 145 of file MergeTree.h.
|
inline |
Definition at line 271 of file MergeTree.h.
|
inline |
Definition at line 197 of file MergeTree.h.
|
inline |
Definition at line 202 of file MergeTree.h.
Definition at line 818 of file MergeTree.cpp.
|
inline |
Definition at line 154 of file MergeTree.h.
| SimplexId MergeTree::getVertBelowSeed | ( | const idSuperArc & | arc, |
| const std::pair< SimplexId, bool > & | seed, | ||
| const std::vector< idCorresp > & | vert2treeOther | ||
| ) |
Definition at line 344 of file MergeTree.cpp.
| SimplexId ttk::cf::MergeTree::globalSimplify | ( | const SimplexId | posSeed0, |
| const SimplexId | posSeed1, | ||
| std::list< std::vector< std::pair< SimplexId, bool > > > & | storage, | ||
| const triangulationType & | mesh | ||
| ) |
Definition at line 100 of file MergeTreeTemplate.h.
| void MergeTree::hideAndClearArcsAbove | ( | const idNode & | baseNode | ) |
Definition at line 887 of file MergeTree.cpp.
Definition at line 903 of file MergeTree.cpp.
| idSuperArc MergeTree::hideAndClearLeadingTo | ( | const idNode & | baseNode, |
| const SimplexId & | v | ||
| ) |
Definition at line 925 of file MergeTree.cpp.
| void MergeTree::hideArc | ( | const idSuperArc & | sa | ) |
Definition at line 487 of file MergeTree.cpp.
| void MergeTree::hideNode | ( | const idNode & | node | ) |
Definition at line 510 of file MergeTree.cpp.
Definition at line 358 of file MergeTree.h.
|
inline |
Definition at line 72 of file MergeTree.h.
|
inline |
init the type of the current tree from params
Definition at line 77 of file MergeTree.h.
| idSuperArc MergeTree::insertNode | ( | Node * | node, |
| const bool | segment | ||
| ) |
Definition at line 666 of file MergeTree.cpp.
| SimplexId MergeTree::insertNodeAboveSeed | ( | const idSuperArc & | arc, |
| const std::pair< SimplexId, bool > & | seed | ||
| ) |
Definition at line 300 of file MergeTree.cpp.
|
inline |
Definition at line 294 of file MergeTree.h.
|
inline |
Definition at line 298 of file MergeTree.h.
|
inline |
Definition at line 302 of file MergeTree.h.
|
inlineprotected |
Definition at line 649 of file MergeTree.h.
Definition at line 645 of file MergeTree.h.
| SimplexId ttk::cf::MergeTree::localSimplify | ( | const SimplexId & | podSeed0, |
| const SimplexId & | podSeed1, | ||
| std::list< std::vector< std::pair< SimplexId, bool > > > & | storage | ||
| ) |
Definition at line 53 of file MergeTreeTemplate.h.
Definition at line 536 of file MergeTree.cpp.
Definition at line 516 of file MergeTree.cpp.
| idSuperArc MergeTree::makeSuperArc | ( | const idNode & | downNodeId, |
| const idNode & | upNodeId, | ||
| const bool | overlapB, | ||
| const bool | overlapA, | ||
| std::pair< SimplexId, bool > * | vertexList = nullptr, |
||
| SimplexId | vertexSize = -1 |
||
| ) |
Definition at line 232 of file MergeTree.cpp.
| void MergeTree::markThisArc | ( | std::vector< ExtendedUnionFind * > & | ufArray, |
| const idNode & | curNodeId, | ||
| const idSuperArc & | mergingArcId, | ||
| const idNode & | parentNodeId | ||
| ) |
Definition at line 1066 of file MergeTree.cpp.
| void MergeTree::mergeArc | ( | const idSuperArc & | sa, |
| const idSuperArc & | recept, | ||
| const bool | changeConnectivity = true |
||
| ) |
Definition at line 495 of file MergeTree.cpp.
| idSuperArc MergeTree::openSuperArc | ( | const idNode & | downNodeId, |
| const bool | overlapB, | ||
| const bool | overlapA | ||
| ) |
Definition at line 213 of file MergeTree.cpp.
| void MergeTree::parallelInitNodeValence | ( | const int | nbThreadValence | ) |
Definition at line 175 of file MergeTree.cpp.
| void MergeTree::parallelUpdateSegmentation | ( | const bool | ct = false | ) |
Definition at line 106 of file MergeTree.cpp.
|
inline |
Definition at line 133 of file MergeTree.h.
|
inline |
Definition at line 580 of file MergeTree.h.
|
inline |
Definition at line 598 of file MergeTree.h.
| void MergeTree::printTree2 | ( | ) |
Definition at line 969 of file MergeTree.cpp.
| void ttk::cf::MergeTree::processVertex | ( | const SimplexId & | vertex, |
| std::vector< ExtendedUnionFind * > & | vect_baseUF, | ||
| const bool | overlapB, | ||
| const bool | overlapA, | ||
| const triangulationType & | mesh, | ||
| DebugTimer & | begin | ||
| ) |
Definition at line 1004 of file MergeTreeTemplate.h.
| void ttk::cf::MergeTree::recoverMTPairs | ( | const std::vector< idNode > & | sortedNodes, |
| std::vector< std::tuple< SimplexId, SimplexId, scalarType, bool > > & | pairsJT, | ||
| std::vector< std::tuple< SimplexId, SimplexId, scalarType, bool > > & | pairsST, | ||
| const triangulationType & | mesh | ||
| ) |
Definition at line 556 of file MergeTreeTemplate.h.
| void MergeTree::removeHiddenDownArcs | ( | const idNode & | n | ) |
Definition at line 385 of file MergeTree.cpp.
| void MergeTree::removeInternalDownArcs | ( | const idNode & | node | ) |
Definition at line 399 of file MergeTree.cpp.
| idSuperArc MergeTree::reverseInsertNode | ( | Node * | node, |
| const bool | segment | ||
| ) |
Definition at line 743 of file MergeTree.cpp.
|
inlineoverridevirtual |
Set the debug level of a particular object. The global variable globalDebugLevel_ will over-ride this setting if it has a lower value.
Reimplemented from ttk::Debug.
Definition at line 109 of file MergeTree.h.
|
inline |
Definition at line 129 of file MergeTree.h.
|
inline |
Definition at line 119 of file MergeTree.h.
|
inline |
Definition at line 124 of file MergeTree.h.
|
inline |
Definition at line 115 of file MergeTree.h.
|
inline |
Definition at line 280 of file MergeTree.h.
|
inline |
Definition at line 159 of file MergeTree.h.
|
inline |
offsets buffer prior to any computation (the VTK wrapper already includes a mechanism to automatically generate such a preconditioned buffer). Definition at line 175 of file MergeTree.h.
| SimplexId ttk::cf::MergeTree::simplifyTree | ( | const SimplexId & | posSeed0, |
| const SimplexId & | posSeed1, | ||
| std::list< std::vector< std::pair< SimplexId, bool > > > & | storage, | ||
| const std::vector< std::tuple< SimplexId, SimplexId, scalarType, bool > > & | sortedPairs | ||
| ) |
Definition at line 185 of file MergeTreeTemplate.h.
| void ttk::cf::MergeTree::sortInput | ( | ) |
if sortedVertices_ is null, define and fill it Also fill the mirror std::vector
Definition at line 31 of file MergeTreeTemplate.h.
|
inline |
Definition at line 348 of file MergeTree.h.
|
inline |
Definition at line 353 of file MergeTree.h.
| void MergeTree::updateSegmentation | ( | ) |
Definition at line 44 of file MergeTree.cpp.
Definition at line 340 of file MergeTree.h.
Definition at line 336 of file MergeTree.h.
|
friend |
Definition at line 38 of file MergeTree.h.
|
friend |
Definition at line 39 of file MergeTree.h.
|
protected |
Definition at line 43 of file MergeTree.h.
|
protected |
Definition at line 44 of file MergeTree.h.
|
protected |
Definition at line 50 of file MergeTree.h.
|
protected |
Definition at line 47 of file MergeTree.h.