TTK
|
TTK processing package that efficiently computes the contour tree of scalar data and more (data segmentation, topological simplification, persistence diagrams, persistence curves, etc.). More...
#include <FTMTree.h>
Public Member Functions | |
FTMTree () | |
~FTMTree () override=default | |
template<typename scalarType , class triangulationType > | |
void | build (const triangulationType *mesh) |
Public Member Functions inherited from ttk::ftm::FTMTree_CT | |
FTMTree_CT (const std::shared_ptr< Params > ¶ms, const std::shared_ptr< Scalars > &scalars) | |
~FTMTree_CT () override=default | |
FTMTree_MT * | getJoinTree () |
FTMTree_MT * | getSplitTree () |
FTMTree_MT * | getTree (const TreeType tt) |
void | preconditionTriangulation (AbstractTriangulation *tri, const bool preproc=true) |
int | setDebugLevel (const int &d) override |
int | setThreadNumber (const int n) override |
template<class triangulationType > | |
int | leafSearch (const triangulationType *mesh) |
template<class triangulationType > | |
void | build (const triangulationType *mesh, TreeType tt) |
void | insertNodes () |
int | combine () |
void | updateRegion (const ArcRegion &arcRegion, idSuperArc ctArc) |
void | createCTArcSegmentation (idSuperArc ctArc, const bool isJT, idSuperArc xtArc) |
void | finalizeSegmentation () |
Public Member Functions inherited from ttk::ftm::FTMTree_MT | |
FTMTree_MT (const std::shared_ptr< Params > ¶ms, const std::shared_ptr< Scalars > &scalars, TreeType type) | |
~FTMTree_MT () override | |
void | clear () |
void | setParamsScalars (const std::shared_ptr< Params > ¶ms, const std::shared_ptr< Scalars > &scalars) |
template<class triangulationType > | |
void | initNbScalars (const triangulationType *triangulation) |
void | initComp () |
bool | compLower (const SimplexId a, const SimplexId b) |
template<typename scalarType > | |
void | sortInput () |
if sortedVertices_ is null, define and fill it | |
void | makeAlloc () |
clear local data for new computation | |
void | makeInit () |
void | initVectStates (const SimplexId nbLeaves) |
template<class triangulationType > | |
void | build (const triangulationType *mesh, const bool ct) |
Compute the merge. | |
template<class triangulationType > | |
int | leafSearch (const triangulationType *mesh) |
template<class triangulationType > | |
void | leafGrowth (const triangulationType *mesh) |
template<class triangulationType > | |
void | arcGrowth (const triangulationType *mesh, const SimplexId startVert, const SimplexId orig) |
template<class triangulationType > | |
std::tuple< bool, bool > | propagate (const triangulationType *mesh, CurrentState ¤tState, UF curUF) |
template<class triangulationType > | |
void | closeAndMergeOnSaddle (const triangulationType *mesh, SimplexId saddleVert) |
template<class triangulationType > | |
void | closeOnBackBone (const triangulationType *mesh, SimplexId saddleVert) |
void | closeArcsUF (idNode closeNode, UF uf) |
template<class triangulationType > | |
SimplexId | trunk (const triangulationType *mesh, const bool ct) |
virtual SimplexId | trunkSegmentation (const std::vector< SimplexId > &pendingNodesVerts, const SimplexId begin, const SimplexId stop) |
SimplexId | trunkCTSegmentation (const std::vector< SimplexId > &pendingNodesVerts, const SimplexId begin, const SimplexId stop) |
void | buildSegmentation () |
use vert2tree to compute the segmentation of the fresh built merge tree. | |
void | finalizeSegmentation () |
void | normalizeIds () |
SimplexId | getArcSize (const idSuperArc arcId) |
bool | isJT () const |
bool | isST () const |
void | preconditionTriangulation (AbstractTriangulation *tri, const bool preproc=true) |
void | setScalars (void *local_scalars) |
void | setTreeType (const int local_treeType) |
void | setSegmentation (const bool segm) |
void | setNormalizeIds (const bool normalize) |
template<typename scalarType > | |
const scalarType & | getValue (SimplexId nodeId) const |
template<typename scalarType > | |
void | setVertexScalars (const scalarType *vals) |
void | setVertexSoSoffsets (const SimplexId *const sos) |
idSuperArc | getNumberOfSuperArcs () const |
SuperArc * | getSuperArc (idSuperArc i) |
const SuperArc * | getSuperArc (idSuperArc i) const |
idNode | getNumberOfNodes () const |
Node * | getNode (idNode nodeId) |
void | setValence (const SimplexId v, const SimplexId val) |
idNode | getNumberOfLeaves () const |
const std::vector< idNode > & | getLeaves () const |
idNode | getLeave (const idNode id) const |
const std::vector< idNode > & | getRoots () const |
SimplexId | getNumberOfVertices () const |
void | setVert2Tree (decltype(mt_data_.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 vert, const idSuperArc arc) |
void | updateCorrespondingNode (const SimplexId vert, const idNode node) |
idCorresp | idNode2corr (const idNode id) const |
idNode | corr2idNode (const idCorresp &corr) const |
idSuperArc | openSuperArc (idNode downNodeId) |
idSuperArc | makeSuperArc (idNode downNodeId, idNode upNodeId) |
void | closeSuperArc (idSuperArc superArcId, idNode upNodeId) |
std::vector< idNode > | sortedNodes (const bool parallel=false) |
void | sortLeaves (const bool parallel=false) |
void | sortNodes () |
Sort tree nodes according to vertex order. | |
void | sortArcs () |
Sort tree arcs. | |
idNode | makeNode (SimplexId vertexId, SimplexId linked=nullVertex) |
idNode | makeNode (const Node *const n, SimplexId linked=nullVertex) |
idSuperArc | insertNode (Node *node, const bool segm=true) |
Node * | getDownNode (const SuperArc *a) |
Node * | getUpNode (const SuperArc *a) |
idNode | getDownNodeId (const SuperArc *a) |
idNode | getUpNodeId (const SuperArc *a) |
Node * | getLowerNode (const SuperArc *a) |
Node * | getUpperNode (const SuperArc *a) |
idNode | getLowerNodeId (const SuperArc *a) |
idNode | getUpperNodeId (const SuperArc *a) |
idNode | getParent (const idNode n) |
void | delNode (idNode node) |
std::shared_ptr< FTMTree_MT > | clone () const |
void | move (FTMTree_MT &mt) |
std::string | printArc (idSuperArc a) |
std::string | printNode (idNode n) |
void | printTree2 () |
void | printParams () const |
int | printTime (Timer &t, const std::string &s, const int debugLevel=2) const |
bool | isNodeOriginDefined (idNode nodeId) |
bool | isRoot (idNode nodeId) |
bool | isLeaf (idNode nodeId) |
bool | isNodeAlone (idNode nodeId) |
bool | isFullMerge () |
bool | isBranchOrigin (idNode nodeId) |
template<class dataType > | |
bool | isJoinTree () |
template<class dataType > | |
bool | isImportantPair (idNode nodeId, double threshold, std::vector< double > &excludeLower, std::vector< double > &excludeHigher) |
template<class dataType > | |
bool | isImportantPair (idNode nodeId, double threshold) |
bool | isNodeMerged (idNode nodeId) |
bool | isNodeIdInconsistent (idNode nodeId) |
bool | isThereOnlyOnePersistencePair () |
bool | notNeedToNormalize (idNode nodeId) |
bool | isMultiPersPair (idNode nodeId) |
template<class dataType > | |
bool | isParentInconsistent (ftm::idNode nodeId) |
template<class dataType > | |
bool | verifyBranchDecompositionInconsistency () |
idNode | getRoot () |
idNode | getParentSafe (idNode nodeId) |
void | getChildren (idNode nodeId, std::vector< idNode > &res) |
void | getLeavesFromTree (std::vector< idNode > &res) |
int | getNumberOfLeavesFromTree () |
int | getNumberOfNodeAlone () |
int | getRealNumberOfNodes () |
template<class dataType > | |
idNode | getMergedRootOrigin () |
void | getBranchOriginsFromThisBranch (idNode node, std::tuple< std::vector< idNode >, std::vector< idNode > > &res) |
void | getTreeBranching (std::vector< idNode > &branching, std::vector< int > &branchingID, std::vector< std::vector< idNode > > &nodeBranching) |
void | getTreeBranching (std::vector< idNode > &branching, std::vector< int > &branchingID) |
void | getAllRoots (std::vector< idNode > &res) |
int | getNumberOfRoot () |
int | getNumberOfChildren (idNode nodeId) |
int | getTreeDepth () |
int | getNodeLevel (idNode nodeId) |
void | getAllNodeLevel (std::vector< int > &res) |
void | getLevelToNode (std::vector< std::vector< idNode > > &res) |
void | getBranchSubtree (std::vector< idNode > &branching, idNode branchRoot, std::vector< idNode > &res) |
template<class dataType > | |
idNode | getLowestNode (idNode nodeStart) |
template<class dataType > | |
std::tuple< dataType, dataType > | getBirthDeathFromIds (idNode nodeId1, idNode nodeId2) |
template<class dataType > | |
std::tuple< dataType, dataType > | getBirthDeathNodeFromIds (idNode nodeId1, idNode nodeId2) |
template<class dataType > | |
std::tuple< dataType, dataType > | getBirthDeath (idNode nodeId) |
template<class dataType > | |
std::tuple< ftm::idNode, ftm::idNode > | getBirthDeathNode (idNode nodeId) |
template<class dataType > | |
std::tuple< dataType, dataType > | getMergedRootBirthDeath () |
template<class dataType > | |
std::tuple< ftm::idNode, ftm::idNode > | getMergedRootBirthDeathNode () |
template<class dataType > | |
dataType | getBirth (idNode nodeId) |
template<class dataType > | |
dataType | getNodePersistence (idNode nodeId) |
template<class dataType > | |
dataType | getMaximumPersistence () |
template<class dataType > | |
ftm::idNode | getSecondMaximumPersistenceNode () |
template<class dataType > | |
dataType | getSecondMaximumPersistence () |
template<class dataType > | |
void | getPersistencePairsFromTree (std::vector< std::tuple< ftm::idNode, ftm::idNode, dataType > > &pairs, bool useBD) |
template<class dataType > | |
std::vector< ftm::idNode > | getMultiPersOrigins (bool useBD) |
void | getMultiPersOriginsVectorFromTree (std::vector< std::vector< idNode > > &res) |
void | setParent (idNode nodeId, idNode newParentNodeId) |
void | deleteNode (idNode nodeId) |
void | deleteIthUpArc (idNode nodeId, int arcIth) |
void | deleteParent (idNode nodeId) |
void | deleteSubtree (idNode nodeId) |
void | copyMergeTreeStructure (FTMTree_MT *tree) |
void | printNodeSS (idNode node, std::stringstream &ss) |
template<class dataType > | |
std::stringstream | printNode2 (idNode nodeId, bool doPrint=true) |
template<class dataType > | |
std::stringstream | printMergedRoot (bool doPrint=true) |
std::stringstream | printSubTree (idNode subRoot) |
std::stringstream | printTree (bool doPrint=true) |
std::stringstream | printTreeStats (bool doPrint=true) |
template<class dataType > | |
std::stringstream | printTreeScalars (bool printNodeAlone=true, bool doPrint=true) |
template<class dataType > | |
std::stringstream | printPairsFromTree (bool useBD=false, bool printPairs=true, bool doPrint=true) |
std::stringstream | printMultiPersOriginsVectorFromTree (bool doPrint=true) |
template<class dataType > | |
std::stringstream | printMultiPersPairsFromTree (bool useBD=false, bool printPairs=true, bool doPrint=true) |
template<class dataType > | |
void | getPersistencePairsFromTree (std::vector< std::tuple< idNode, idNode, dataType > > &pairs, bool useBD) |
template<class dataType > | |
std::vector< idNode > | getMultiPersOrigins (bool useBD) |
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 |
Additional Inherited Members | |
Protected Member Functions inherited from ttk::ftm::FTMTree_MT | |
idNode | getVertInRange (const std::vector< SimplexId > &range, const SimplexId v, const idNode last=0) const |
std::tuple< SimplexId, SimplexId > | getBoundsFromVerts (const std::vector< SimplexId > &nodes) const |
idSuperArc | upArcFromVert (const SimplexId v) |
SimplexId | getChunkSize (const SimplexId nbVerts=-1, const SimplexId nbtasks=100) const |
SimplexId | getChunkCount (const SimplexId nbVerts=-1, const SimplexId nbTasks=100) const |
void | sortUpArcs (const idNode nid) |
void | sortDownArcs (const idNode nid) |
bool | isLower (SimplexId a, SimplexId b) const |
bool | isHigher (SimplexId a, SimplexId b) const |
template<typename type > | |
void | createVector (std::vector< type > &vec) |
template<typename type > | |
void | createAtomicVector (std::shared_ptr< FTMAtomicVector< type > > &ptr) |
template<typename type > | |
void | initVector (std::vector< type > &vect, const type val) |
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 inherited from ttk::ftm::FTMTree_CT | |
FTMTree_MT | jt_ |
FTMTree_MT | st_ |
Protected Attributes inherited from ttk::ftm::FTMTree_MT | |
std::shared_ptr< Params > | params_ |
std::shared_ptr< Scalars > | scalars_ |
TreeData | mt_data_ |
Comparison | comp_ |
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_ |
Static Protected Attributes inherited from ttk::Debug | |
static COMMON_EXPORTS debug::LineMode | lastLineMode = ttk::debug::LineMode::NEW |
TTK processing package that efficiently computes the contour tree of scalar data and more (data segmentation, topological simplification, persistence diagrams, persistence curves, etc.).
Compute the join tree, split tree or contour tree of a function on a triangulation. TTK assumes that the input dataset is made of only one connected component.
dataType | Data type of the input scalar field (char, float, etc.). |
Online examples:
FTMTree::FTMTree | ( | ) |
Definition at line 20 of file FTMTree.cpp.
|
overridedefault |
void ttk::ftm::FTMTree::build | ( | const triangulationType * | mesh | ) |
Definition at line 30 of file FTMTree_Template.h.