TTK
Loading...
Searching...
No Matches
ttk::ftm Namespace Reference

Classes

struct  ArcData
 
class  ArcRegion
 
class  AtomicUF
 
struct  Comparison
 
struct  CurrentState
 
class  FTMTree
 
class  FTMTree_CT
 
class  FTMTree_MT
 
class  FTMTreePP
 
struct  LocalFTM
 
struct  MergeTree
 
class  Node
 
struct  NodeData
 
struct  Params
 
struct  Region
 
struct  Scalars
 
class  Segment
 
class  Segments
 
struct  SharedData
 
class  SuperArc
 
struct  TreeData
 
struct  VertData
 
struct  WrapperData
 

Typedefs

using idSuperArc = long unsigned int
 SuperArc index in vect_superArcs_.
 
using idNode = unsigned int
 Node index in vect_nodes_.
 
using idCorresp = long long int
 type used to recover Node/Arc in vert2tree SIGNED ONLY
 
using idSegment = idSuperArc
 for the segmentation, we have an array of segment containing area of the mesh
 
using numThread = ThreadId
 type use to store threads related numbers
 
using ufDataType = long int
 type stored by UnionFind
 
using idThread = ThreadId
 manage number of threads
 
using idTask = TaskId
 for task identifiers
 
using valence = SimplexId
 for vertex up/down valence
 
using VertCompFN = std::function<bool(SimplexId, SimplexId)>
 
using SetPropagation = std::set<SimplexId, VertCompFN>
 
using SetCompFN = std::function<bool(const SetPropagation &, const SetPropagation &)>
 
using segm_it = std::vector<SimplexId>::iterator
 
using segm_rev_it = std::vector<SimplexId>::reverse_iterator
 
using segm_const_it = std::vector<SimplexId>::const_iterator
 
using segm_const_rev_it = std::vector<SimplexId>::const_reverse_iterator
 
using UF = AtomicUF *
 

Enumerations

enum  TreeType : char { Join = 0 , Split = 1 , Contour = 2 , Join_Split = 3 }
 
enum  SimplifMethod : char { Persist = 0 , Span = 1 , NbVert = 2 , NbArc = 3 }
 
enum  ComponentState : char { Visible , Hidden , Pruned , Merged }
 
enum class  TreeComponent {
  Arc = -1 , Local_minimum , Saddle1 , Saddle2 ,
  Local_maximum
}
 
enum class  ArcType : char {
  Min_arc = 0 , Max_arc , Saddle1_arc , Saddle2_arc ,
  Saddle1_saddle2_arc
}
 

Functions

std::ostream & operator<< (std::ostream &o, Node const &n)
 
std::ostream & operator<< (std::ostream &o, SuperArc const &a)
 
void manageInconsistentArcsMultiParent (FTMTree_MT *tree)
 
void removeSelfLink (FTMTree_MT *tree)
 
void printTreesStats (std::vector< ftm::FTMTree_MT * > &trees)
 
template<class dataType>
void printTree (MergeTree< dataType > &tree, bool doPrint=true)
 
template<class dataType>
void printTreeStats (MergeTree< dataType > &tree)
 
template<class dataType>
void printTreeScalars (MergeTree< dataType > &tree, bool printNodeAlone=true)
 
template<class dataType>
void mergeTreeToFTMTree (std::vector< MergeTree< dataType > > &trees, std::vector< ftm::FTMTree_MT * > &treesT)
 
template<class dataType>
void mergeTreeTemplateToDouble (MergeTree< dataType > &mt, MergeTree< double > &newMt)
 
template<class dataType>
void mergeTreesTemplateToDouble (std::vector< MergeTree< dataType > > &mts, std::vector< MergeTree< double > > &newMts)
 
template<class dataType>
void mergeTreesTemplateToDouble (std::vector< std::vector< MergeTree< dataType > > > &mts, std::vector< std::vector< MergeTree< double > > > &newMts)
 
template<class dataType>
void mergeTreeDoubleToTemplate (MergeTree< double > &mt, MergeTree< dataType > &newMt)
 
template<class dataType>
void mergeTreesDoubleToTemplate (std::vector< MergeTree< double > > &mts, std::vector< MergeTree< dataType > > &newMts)
 
template<class dataType>
void mergeTreesDoubleToTemplate (std::vector< std::vector< MergeTree< double > > > &mts, std::vector< std::vector< MergeTree< dataType > > > &newMts)
 
template<class dataType>
MergeTree< dataType > createEmptyMergeTree (int scalarSize)
 
template<class dataType>
void setTreeScalars (MergeTree< dataType > &mergeTree, std::vector< dataType > &scalarsVector)
 
template<class dataType>
void getTreeScalars (const ftm::FTMTree_MT *tree, std::vector< dataType > &scalarsVector)
 
template<class dataType>
void getTreeScalars (MergeTree< dataType > &mergeTree, std::vector< dataType > &scalarsVector)
 
template<class dataType>
MergeTree< dataType > copyMergeTree (const ftm::FTMTree_MT *tree, bool doSplitMultiPersPairs=false)
 
template<class dataType>
MergeTree< dataType > copyMergeTree (const MergeTree< dataType > &mergeTree, bool doSplitMultiPersPairs=false)
 
template<class dataType>
MergeTree< dataType > cleanMergeTree (ftm::FTMTree_MT *tree, std::vector< int > &nodeCorr, bool useBD=true)
 
template<class dataType>
void cleanMergeTree (MergeTree< dataType > &mTree, std::vector< int > &nodeCorr, bool useBD=true)
 
template<class dataType>
void cleanMergeTree (MergeTree< dataType > &mTree, bool useBD=true)
 
template<class dataType>
void getPersistencePairs (FTMTree_MT *tree, std::vector< std::tuple< SimplexId, SimplexId, dataType > > &pairs)
 
template<class dataType>
std::vector< std::tuple< SimplexId, SimplexId, dataType > > computePersistencePairs (FTMTree_MT *tree)
 
template<class dataType>
MergeTree< dataType > makeTree (vtkUnstructuredGrid *treeNodes, vtkUnstructuredGrid *treeArcs)
 
template<class dataType>
MergeTree< dataType > makeBDTreeFromPDGrid (vtkUnstructuredGrid *persistenceDiagram, bool useSecondPairsType=true, int diagramPairTypes=0)
 Create a MergeTree (as a branch decomposition tree) object given a vtkUnstructuredGrid representing a persistence diagram (in the TTK format).
 
void loadBlocks (std::vector< vtkSmartPointer< vtkMultiBlockDataSet > > &inputTrees, vtkMultiBlockDataSet *blocks)
 
template<class dataType>
bool constructTrees (std::vector< vtkSmartPointer< vtkMultiBlockDataSet > > &inputTrees, std::vector< MergeTree< dataType > > &intermediateTrees, std::vector< vtkUnstructuredGrid * > &treesNodes, std::vector< vtkUnstructuredGrid * > &treesArcs, std::vector< vtkDataSet * > &treesSegmentation, const std::vector< bool > &useSecondPairsTypeVec, int diagramPairTypes=0)
 
template<class dataType>
bool constructTrees (std::vector< vtkSmartPointer< vtkMultiBlockDataSet > > &inputTrees, std::vector< MergeTree< dataType > > &intermediateTrees, std::vector< vtkUnstructuredGrid * > &treesNodes, std::vector< vtkUnstructuredGrid * > &treesArcs, std::vector< vtkDataSet * > &treesSegmentation, bool useSecondPairsType=true, int diagramPairTypes=0)
 
template<class dataType>
bool constructTrees (std::vector< vtkSmartPointer< vtkMultiBlockDataSet > > &inputTrees, std::vector< MergeTree< dataType > > &intermediateTrees, bool useSecondPairsType=true, int diagramPairTypes=0)
 

Typedef Documentation

◆ idCorresp

using ttk::ftm::idCorresp = long long int

type used to recover Node/Arc in vert2tree SIGNED ONLY

Definition at line 44 of file FTMDataTypes.h.

◆ idNode

using ttk::ftm::idNode = unsigned int

Node index in vect_nodes_.

Definition at line 39 of file FTMDataTypes.h.

◆ idSegment

for the segmentation, we have an array of segment containing area of the mesh

Definition at line 48 of file FTMDataTypes.h.

◆ idSuperArc

using ttk::ftm::idSuperArc = long unsigned int

SuperArc index in vect_superArcs_.

Definition at line 37 of file FTMDataTypes.h.

◆ idTask

for task identifiers

Definition at line 60 of file FTMDataTypes.h.

◆ idThread

manage number of threads

Definition at line 57 of file FTMDataTypes.h.

◆ numThread

type use to store threads related numbers

Definition at line 51 of file FTMDataTypes.h.

◆ segm_const_it

using ttk::ftm::segm_const_it = std::vector<SimplexId>::const_iterator

Definition at line 152 of file FTMStructures.h.

◆ segm_const_rev_it

using ttk::ftm::segm_const_rev_it = std::vector<SimplexId>::const_reverse_iterator

Definition at line 153 of file FTMStructures.h.

◆ segm_it

using ttk::ftm::segm_it = std::vector<SimplexId>::iterator

Definition at line 150 of file FTMStructures.h.

◆ segm_rev_it

using ttk::ftm::segm_rev_it = std::vector<SimplexId>::reverse_iterator

Definition at line 151 of file FTMStructures.h.

◆ SetCompFN

using ttk::ftm::SetCompFN = std::function<bool(const SetPropagation &, const SetPropagation &)>

Definition at line 69 of file FTMDataTypes.h.

◆ SetPropagation

Definition at line 68 of file FTMDataTypes.h.

◆ UF

Definition at line 39 of file FTMTree_MT.h.

◆ ufDataType

using ttk::ftm::ufDataType = long int

type stored by UnionFind

Definition at line 54 of file FTMDataTypes.h.

◆ valence

for vertex up/down valence

Definition at line 63 of file FTMDataTypes.h.

◆ VertCompFN

using ttk::ftm::VertCompFN = std::function<bool(SimplexId, SimplexId)>

Definition at line 67 of file FTMDataTypes.h.

Enumeration Type Documentation

◆ ArcType

enum class ttk::ftm::ArcType : char
strong
Enumerator
Min_arc 
Max_arc 
Saddle1_arc 
Saddle2_arc 
Saddle1_saddle2_arc 

Definition at line 105 of file FTMDataTypes.h.

◆ ComponentState

Enumerator
Visible 
Hidden 
Pruned 
Merged 

Definition at line 95 of file FTMDataTypes.h.

◆ SimplifMethod

Enumerator
Persist 
Span 
NbVert 
NbArc 

Definition at line 93 of file FTMDataTypes.h.

◆ TreeComponent

enum class ttk::ftm::TreeComponent
strong
Enumerator
Arc 
Local_minimum 
Saddle1 
Saddle2 
Local_maximum 

Definition at line 97 of file FTMDataTypes.h.

◆ TreeType

enum ttk::ftm::TreeType : char
Enumerator
Join 
Split 
Contour 
Join_Split 

Definition at line 91 of file FTMDataTypes.h.

Function Documentation

◆ cleanMergeTree() [1/3]

template<class dataType>
MergeTree< dataType > ttk::ftm::cleanMergeTree ( ftm::FTMTree_MT * tree,
std::vector< int > & nodeCorr,
bool useBD = true )

Definition at line 211 of file FTMTreeUtils.h.

◆ cleanMergeTree() [2/3]

template<class dataType>
void ttk::ftm::cleanMergeTree ( MergeTree< dataType > & mTree,
bool useBD = true )

Definition at line 318 of file FTMTreeUtils.h.

◆ cleanMergeTree() [3/3]

template<class dataType>
void ttk::ftm::cleanMergeTree ( MergeTree< dataType > & mTree,
std::vector< int > & nodeCorr,
bool useBD = true )

Definition at line 311 of file FTMTreeUtils.h.

◆ computePersistencePairs()

template<class dataType>
std::vector< std::tuple< SimplexId, SimplexId, dataType > > ttk::ftm::computePersistencePairs ( FTMTree_MT * tree)

Definition at line 28 of file FTMTreePPUtils.h.

◆ constructTrees() [1/3]

template<class dataType>
bool ttk::ftm::constructTrees ( std::vector< vtkSmartPointer< vtkMultiBlockDataSet > > & inputTrees,
std::vector< MergeTree< dataType > > & intermediateTrees,
bool useSecondPairsType = true,
int diagramPairTypes = 0 )

Definition at line 303 of file ttkMergeTreeUtils.h.

◆ constructTrees() [2/3]

template<class dataType>
bool ttk::ftm::constructTrees ( std::vector< vtkSmartPointer< vtkMultiBlockDataSet > > & inputTrees,
std::vector< MergeTree< dataType > > & intermediateTrees,
std::vector< vtkUnstructuredGrid * > & treesNodes,
std::vector< vtkUnstructuredGrid * > & treesArcs,
std::vector< vtkDataSet * > & treesSegmentation,
bool useSecondPairsType = true,
int diagramPairTypes = 0 )

Definition at line 287 of file ttkMergeTreeUtils.h.

◆ constructTrees() [3/3]

template<class dataType>
bool ttk::ftm::constructTrees ( std::vector< vtkSmartPointer< vtkMultiBlockDataSet > > & inputTrees,
std::vector< MergeTree< dataType > > & intermediateTrees,
std::vector< vtkUnstructuredGrid * > & treesNodes,
std::vector< vtkUnstructuredGrid * > & treesArcs,
std::vector< vtkDataSet * > & treesSegmentation,
const std::vector< bool > & useSecondPairsTypeVec,
int diagramPairTypes = 0 )

Definition at line 248 of file ttkMergeTreeUtils.h.

◆ copyMergeTree() [1/2]

template<class dataType>
MergeTree< dataType > ttk::ftm::copyMergeTree ( const ftm::FTMTree_MT * tree,
bool doSplitMultiPersPairs = false )

Definition at line 165 of file FTMTreeUtils.h.

◆ copyMergeTree() [2/2]

template<class dataType>
MergeTree< dataType > ttk::ftm::copyMergeTree ( const MergeTree< dataType > & mergeTree,
bool doSplitMultiPersPairs = false )

Definition at line 204 of file FTMTreeUtils.h.

◆ createEmptyMergeTree()

template<class dataType>
MergeTree< dataType > ttk::ftm::createEmptyMergeTree ( int scalarSize)

Definition at line 125 of file FTMTreeUtils.h.

◆ getPersistencePairs()

template<class dataType>
void ttk::ftm::getPersistencePairs ( FTMTree_MT * tree,
std::vector< std::tuple< SimplexId, SimplexId, dataType > > & pairs )

Definition at line 17 of file FTMTreePPUtils.h.

◆ getTreeScalars() [1/2]

template<class dataType>
void ttk::ftm::getTreeScalars ( const ftm::FTMTree_MT * tree,
std::vector< dataType > & scalarsVector )

Definition at line 151 of file FTMTreeUtils.h.

◆ getTreeScalars() [2/2]

template<class dataType>
void ttk::ftm::getTreeScalars ( MergeTree< dataType > & mergeTree,
std::vector< dataType > & scalarsVector )

Definition at line 159 of file FTMTreeUtils.h.

◆ loadBlocks()

void ttk::ftm::loadBlocks ( std::vector< vtkSmartPointer< vtkMultiBlockDataSet > > & inputTrees,
vtkMultiBlockDataSet * blocks )
inline

Definition at line 216 of file ttkMergeTreeUtils.h.

◆ makeBDTreeFromPDGrid()

template<class dataType>
MergeTree< dataType > ttk::ftm::makeBDTreeFromPDGrid ( vtkUnstructuredGrid * persistenceDiagram,
bool useSecondPairsType = true,
int diagramPairTypes = 0 )

Create a MergeTree (as a branch decomposition tree) object given a vtkUnstructuredGrid representing a persistence diagram (in the TTK format).

Parameters
[in]persistenceDiagramvtk object representing the persistence diagram.
[in]useSecondPairsTypeboolean to choose which pair type to use depending on the value of diagramPairTypes, by default the choice is between min-saddle and saddle-max, true for the second type and false for the first type.
[in]diagramPairTypes0 to choose between min-saddle and saddle-max, 1 to choose between min-saddle and saddle-saddle, 2 to choose between saddle-saddle and saddle-max.
Returns
a MergeTree object corresponding to the input persistence diagram.

Definition at line 110 of file ttkMergeTreeUtils.h.

◆ makeTree()

template<class dataType>
MergeTree< dataType > ttk::ftm::makeTree ( vtkUnstructuredGrid * treeNodes,
vtkUnstructuredGrid * treeArcs )

Definition at line 26 of file ttkMergeTreeUtils.h.

◆ manageInconsistentArcsMultiParent()

void ttk::ftm::manageInconsistentArcsMultiParent ( FTMTree_MT * tree)

Definition at line 508 of file FTMTreeUtils.cpp.

◆ mergeTreeDoubleToTemplate()

template<class dataType>
void ttk::ftm::mergeTreeDoubleToTemplate ( MergeTree< double > & mt,
MergeTree< dataType > & newMt )

Definition at line 80 of file FTMTreeUtils.h.

◆ mergeTreesDoubleToTemplate() [1/2]

template<class dataType>
void ttk::ftm::mergeTreesDoubleToTemplate ( std::vector< MergeTree< double > > & mts,
std::vector< MergeTree< dataType > > & newMts )

Definition at line 91 of file FTMTreeUtils.h.

◆ mergeTreesDoubleToTemplate() [2/2]

template<class dataType>
void ttk::ftm::mergeTreesDoubleToTemplate ( std::vector< std::vector< MergeTree< double > > > & mts,
std::vector< std::vector< MergeTree< dataType > > > & newMts )

Definition at line 102 of file FTMTreeUtils.h.

◆ mergeTreesTemplateToDouble() [1/2]

template<class dataType>
void ttk::ftm::mergeTreesTemplateToDouble ( std::vector< MergeTree< dataType > > & mts,
std::vector< MergeTree< double > > & newMts )

Definition at line 56 of file FTMTreeUtils.h.

◆ mergeTreesTemplateToDouble() [2/2]

template<class dataType>
void ttk::ftm::mergeTreesTemplateToDouble ( std::vector< std::vector< MergeTree< dataType > > > & mts,
std::vector< std::vector< MergeTree< double > > > & newMts )

Definition at line 67 of file FTMTreeUtils.h.

◆ mergeTreeTemplateToDouble()

template<class dataType>
void ttk::ftm::mergeTreeTemplateToDouble ( MergeTree< dataType > & mt,
MergeTree< double > & newMt )

Definition at line 45 of file FTMTreeUtils.h.

◆ mergeTreeToFTMTree()

template<class dataType>
void ttk::ftm::mergeTreeToFTMTree ( std::vector< MergeTree< dataType > > & trees,
std::vector< ftm::FTMTree_MT * > & treesT )

Definition at line 37 of file FTMTreeUtils.h.

◆ operator<<() [1/2]

std::ostream & ttk::ftm::operator<< ( std::ostream & o,
Node const & n )

Definition at line 1071 of file FTMTree_MT.cpp.

◆ operator<<() [2/2]

std::ostream & ttk::ftm::operator<< ( std::ostream & o,
SuperArc const & a )

Definition at line 1065 of file FTMTree_MT.cpp.

◆ printTree()

template<class dataType>
void ttk::ftm::printTree ( MergeTree< dataType > & tree,
bool doPrint = true )

Definition at line 21 of file FTMTreeUtils.h.

◆ printTreeScalars()

template<class dataType>
void ttk::ftm::printTreeScalars ( MergeTree< dataType > & tree,
bool printNodeAlone = true )

Definition at line 31 of file FTMTreeUtils.h.

◆ printTreesStats()

void ttk::ftm::printTreesStats ( std::vector< ftm::FTMTree_MT * > & trees)

Definition at line 5 of file FTMTreeUtils.cpp.

◆ printTreeStats()

template<class dataType>
void ttk::ftm::printTreeStats ( MergeTree< dataType > & tree)

Definition at line 26 of file FTMTreeUtils.h.

◆ removeSelfLink()

void ttk::ftm::removeSelfLink ( FTMTree_MT * tree)

Definition at line 559 of file FTMTreeUtils.cpp.

◆ setTreeScalars()

template<class dataType>
void ttk::ftm::setTreeScalars ( MergeTree< dataType > & mergeTree,
std::vector< dataType > & scalarsVector )

Definition at line 142 of file FTMTreeUtils.h.