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

TTK base package defining the standard types. More...

Namespaces

namespace  dcg
namespace  debug
namespace  cf
namespace  cta
namespace  gph
namespace  Dijkstra
namespace  dcvf
namespace  ftm
namespace  ftr
namespace  Geometry
namespace  intgl
namespace  Laplacian
namespace  lts
namespace  mth
namespace  mtu
namespace  axa
namespace  pcp
namespace  persistenceSort
namespace  rpd
namespace  Statistics
namespace  periodicGhosts

Classes

class  AbstractTriangulation
 AbstractTriangulation is an interface class that defines an interface for efficient traversal methods on triangulations of piecewise linear manifolds. More...
class  ApproximateTopology
 TTK processing package for progressive Topological Data Analysis. More...
class  ArrayPreconditioning
class  AssignmentAuction
class  AssignmentExhaustive
class  AssignmentMunkres
class  AssignmentSolver
class  BarycentricSubdivision
 Subdivise a triangulation according to triangle barycenter. More...
class  BottleneckDistance
class  GabowTarjan
class  BoundingVolumeHierarchy
 Acceleration structure for native ray tracer. Based on implementation described in Physically Based Rendering: From Theory to Implementation by Matt Pharr, Wenzel Jakob and Greg Humphreys. More...
class  Ray
 Data structure for a ray. More...
class  CinemaImaging
 TTK modules that generates images of a dataset. More...
class  CinemaImagingEmbree
 TTK CinemaImagingEmbree processing package. More...
class  CinemaImagingNative
 Native renderer that uses a bounding volume hierarchy for accelerated raycasting. More...
class  CinemaQuery
 TTK cinemaQuery processing package. More...
class  ClusteringMetrics
class  ArrayLinkedList
 This class describes a dynamic size data structure for thread safe computation. It is a linked list of arrays that also stores the current number of elements. Its key feature is that the addition of an element will never cause the moving of the data structure in memory, unlike an std::vector, making the access to an element thread safe even if another thread is adding elements. More...
class  BaseClass
class  LRUCache
 LRU cache implementation. More...
class  CommandLineParser
 Basic command line parsing. More...
class  Debug
 Minimalist debugging class. More...
class  DebugTimer
 Legacy backward compatibility. More...
class  DebugMemory
 Legacy backward compatibility. More...
class  FlatJaggedArray
 Replacement for std::vector<std::vector<SimplexId>>. More...
class  Lock
 RAII wrapper around OpenMP lock. More...
class  OsCall
 Os-specifics. More...
class  Memory
class  ProgramBase
 Base editor class for standalone programs. This class parses the the command line, execute the TTK module and takes care of the IO. More...
class  Program
class  Timer
class  VisitedMask
 Auto-cleaning re-usable graph propagations data structure. More...
class  Wrapper
 Wrapper class to wrap ttk code. More...
class  ImplicitCluster
class  CompactTriangulation
 CompactTriangulation is a class implemented based on the TopoCluster data structure, which is a localized data structure for simplicial meshes. The key idea of TopoCluster is to subdivide the simplicial mesh into clusters. Then, the connectivity information is computed locally for each cluster and discarded when it is no longer needed. The simplicial mesh needs to be subdivided before using TopoCluster, i.e., there has to be a scalar field named "ttkCompactTriangulationIndex" to denote the cluster index of each vertex. Note Topocluster will reindex the simplices based on the clustering input array. Related publications
"TopoCluster: A Localized Data Structure for Topology-based Visualization" Guoxi Liu, Federico Iuricich, Riccardo Fellegara, and Leila De Floriani IEEE Transactions on Visualization and Computer Graphics, 2021. More...
class  CompactTriangulationPreconditioning
 TTK processing package for mesh preprocessing before using TopoCluster. More...
class  ConnectedComponents
 TTK connectedComponents processing package. More...
class  ContinuousScatterPlot
 TTK processing package that computes the continuous scatterplot of bivariate volumetric data. More...
class  ContourAroundPoint
 TTK contourAroundPoint processing package. More...
class  Arc
class  SuperArc
class  Node
class  ContourTreeSimplificationMetric
class  PersistenceMetric
class  SubLevelSetTree
class  ContourTree
 TTK processing package that computes the contour tree of scalar data and more (data segmentation, topological simplification, persistence diagrams, persistence curves, etc.). More...
class  ContourTreeAlignment
 TTK contourTreeAlignment processing package. More...
class  DelaunayRipsPersistenceDiagram
 TTK base class that computes the persistence diagram of a Delaunay-Rips filtration. More...
class  DepthImageBasedGeometryApproximation
 This module approximates the depicted geometry of a depth image. More...
class  DimensionReduction
 TTK VTK-filter that apply dimension reduction algorithms on input. More...
class  DimensionReductionMetrics
 TTK base class that computes different scores for the quality of a dimension reduction. More...
class  DiscreteMorseSandwich
 TTK DiscreteMorseSandwich processing package. More...
class  DistanceField
 TTK processing package for distance field computation on PL manifolds. More...
class  DistanceMatrixDistortion
struct  DynTreeNode
 class representing a node of a tree and the link to its parent if not the root More...
class  DynamicTree
 Implements the Dynamic Tree data-structure (or ST-Tree). More...
class  EigenField
 TTK processing package for computing eigenfunctions of a triangular mesh. More...
class  ExplicitTriangulation
 ExplicitTriangulation is a class that provides time efficient traversal methods on triangulations of piecewise linear manifolds. More...
class  ExTreeM
class  FiberSurface
 TTK processing package that computes fiber surfaces. More...
class  FTMAtomicVector
class  FTRAtomicVector
class  GaussianPointCloud
 TTK gaussianPointCloud processing package that generates a 1D, 2D or 3D point cloud by randomly casting samples from a Gaussian distribution. More...
class  HarmonicField
 TTK processing package for the topological simplification of scalar data. More...
class  HelloWorld
class  Icosphere
class  Identifiers
class  ImplicitWithPreconditions
 Implicit Triangulation class with preconditioning. More...
class  ImplicitNoPreconditions
 Implicit Triangulation class without preconditioning. More...
class  ImplicitTriangulation
 ImplicitTriangulation is a class that provides time and memory efficient traversal methods on triangulations of piecewise linear manifolds represented by regular grids. More...
class  ImplicitTriangulationCRTP
class  IntegralLines
 TTK processing package for the computation of edge-based integral lines of the gradient of an input scalar field defined on a PL manifold. More...
class  JacobiSet
 TTK processing package for the computation of the Jacobi set of bivariate volumetric data. More...
class  KDTree
 TTK KD-Tree. More...
class  LDistance
 TTK lDistance processing package. More...
class  LDistanceMatrix
class  SweepCmp
class  LegacyTopologicalSimplification
 TTK processing package for the topological simplification of scalar data. More...
class  LowestCommonAncestor
 Class to answer the lowest common ancestor requests of pairs of nodes in a tree in constant time after a linear time preprocess. More...
class  Graph
struct  criticalPointPairComparison
 Comparison between critical point pairs ( (Extremum,Saddle), dist(M,S) ). More...
struct  mandatorySaddleComparison
 Comparison between mandatory saddles (Saddle id, Number of merged extrema). More...
struct  pairComparison
 Comparison of the second member of a std::pair<int,double>. More...
class  MandatoryCriticalPoints
 TTK processing package for the computation of mandatory critical points in uncertain scalar data. More...
class  ManifoldCheck
 TTK processing package for manifold checks. More...
class  MarchingTetrahedra
 TTK processing package for Marching Tetra/Triangles computations. More...
class  MergeTreeAutoencoder
class  MergeTreeAutoencoderDecoding
class  BranchMappingDistance
class  MergeTreeBarycenter
class  MergeTreeBase
class  MergeTreeClustering
class  MergeTreeDistance
class  PathMappingDistance
class  MergeTreeDistanceMatrix
class  MergeTreeNeuralBase
class  MergeTreeNeuralLayer
class  MergeTreeNeuralNetwork
class  MergeTreeAxesAlgorithmBase
class  MergeTreePrincipalGeodesics
class  MergeTreePrincipalGeodesicsBase
class  MergeTreePrincipalGeodesicsDecoding
class  MergeTreeTemporalReduction
class  MergeTreeTemporalReductionDecoding
class  MeshGraph
 TTK meshGraph processing package. More...
class  MetricDistortion
class  MorphologicalOperators
 TTK morphologicalOperators processing package. More...
class  MorseSmaleComplex
 TTK processing package for the computation of Morse-Smale complexes. More...
class  MorseSmaleQuadrangulation
 TTK processing package for the topological simplification of scalar data. More...
class  MultiresTopology
 TTK processing package for progressive Topological Data Analysis. More...
class  MultiresTriangulation
 MultiresTriangulation. More...
class  PathCompression
 TTK processing package for the computation of Morse-Smale segmentations using Path Compression. More...
class  PeriodicImplicitTriangulation
 TTK triangulation class for grids with periodic boundary conditions implemented in all directions. More...
class  PeriodicImplicitTriangulationCRTP
class  PeriodicWithPreconditions
 Periodic implicit Triangulation class with preconditioning. More...
class  PeriodicNoPreconditions
 Periodic implicit Triangulation class without preconditioning. More...
class  PersistenceCurve
 TTK processing package for the computation of persistence curves. More...
class  PersistenceDiagram
 TTK processing package for the computation of persistence diagrams. More...
struct  CriticalVertex
 Critical Vertex. More...
struct  PersistencePair
 Persistence Pair. More...
class  PersistenceDiagramAuction
struct  Compare
class  PersistenceDiagramAuctionActor
class  Good
class  Bidder
class  PDBarycenter
class  PDClustering
class  PersistenceDiagramBarycenter
class  PersistenceDiagramClustering
 TTK processing package for the computation of Wasserstein barycenters and K-Means clusterings of a set of persistence diagrams. More...
class  InitRandomDict
class  PersistenceDiagramConstrainedOptimization
class  PersistenceDiagramDictionary
class  PersistenceDiagramDictionaryBorderInitializer
class  PersistenceDiagramDictionaryDecoding
 TTK processing package for the computation of a Dictionary of Persistence Diagrams and barycentric weights to approximate an ensemble of Persistence Diagrams. More...
class  PersistenceDiagramDistanceMatrix
class  PersistenceDiagramWarmRestartAuction
 TTK base class that computes the Wasserstein distance between two persistence diagrams. More...
class  PersistentGenerators
 TTK PersistentGenerators processing package. More...
class  PersistentSimplexPairs
 Textbook algorithm to find persistence pairs. More...
class  MergeTreeVisualization
class  PlanarGraphLayout
 TTK planarGraphLayout processing package. More...
class  ProgressiveTopology
 TTK processing package for progressive Topological Data Analysis. More...
class  ProjectionFromTable
class  Quadrangulation
class  QuadrangulationSubdivision
 TTK processing package for the topological simplification of scalar data. More...
class  RangeDrivenOctree
 TTK optional package for octree based range queries in bivariate volumetric data. More...
class  RangeMinimumQuery
 Class to answer range minimum queries in an array in constant time after a linearithmic time preprocess. More...
class  ReebSpace
 TTK processing package that efficiently computes the Reeb space of bivariate volumetric data. More...
class  RegularGridTriangulation
 RegularGridTriangulation is an abstract subclass of ttk::AbstractTriangulation that exposes a common MPI API for triangulation on regular grids. The virtual methods in this class are meant to be implemented in ttk::ImplicitTriangulation and ttk::PeriodicImplicitTriangulation. This meta-class only holds an interface for MPI-related features for the moment but will maybe be enlarged in the future. More...
class  RipsComplex
 TTK VTK-filter that computes a Rips complex. More...
class  RipsPersistenceDiagram
 TTK base class that computes the persistence diagram of a Rips complex. More...
class  RipsPersistenceGenerators
 TTK base class that computes 1-dimensional persistence generators in a Rips filtration. More...
class  ScalarFieldCriticalPoints
 TTK processing package for the computation of critical points in PL scalar fields defined on PL manifolds. More...
class  ScalarFieldSmoother
 TTK processing package for scalar field smoothing. More...
class  SeparatrixStability
 Compute the occurrence rate of separatrices in an ensemble. More...
class  SignedDistanceField
 This filter computes a signed distance field given a surface in input. More...
class  CellArray
 CellArray generic array of cells More...
class  OneSkeleton
 OneSkeleton processing package. More...
class  ThreeSkeleton
 ThreeSkeleton processing package. More...
class  TwoSkeleton
 TwoSkeleton processing package. More...
class  ZeroSkeleton
 ZeroSkeleton processing package. More...
class  SurfaceGeometrySmoother
 TTK VTK-filter for smoothing meshes on surfaces. More...
class  TopologicalCompression
 TTK topologicalCompression processing package. More...
class  TopologicalDimensionReduction
 TTK base class that embeds points into 2D, under topological constraints. More...
class  TopologicalLoss
 TTK base class for representing differentiable topological losses to be used in dimension reduction. More...
class  TopologicalOptimization
class  TopologicalSimplification
 TTK processing package for the topological simplification of scalar data. More...
class  TopologicalSkeleton
 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...
class  TopoMap
class  TrackingFromCriticalPoints
class  TrackingFromFields
class  TrackingFromOverlap
 TTK trackingFromOverlap processing package that tracks labeled point sets. More...
class  TrackingFromPersistenceDiagrams
class  TrackingPostProcessing
 TTK processing package for post-processing tracked trajectories: linearization, fusion (chaining), and merge-tree-based segmentation statistics. More...
class  Triangulation
 Triangulation is a class that provides time and memory efficient traversal methods on triangulations of piecewise linear manifolds. It provides the following features: More...
class  PDFBounds
class  PDFHistograms
class  UncertainDataEstimator
 TTK processing package that takes an input ensemble data set (represented by a list of scalar fields) and which computes various vertexwise statistics (PDF estimation, bounds, moments, etc.). More...
class  UnionFind
 Union Find implementation for connectivity tracking. More...
class  VectorSimplification
 TTK VectorSimplification processing package. More...
class  VectorWeightCurve
 TTK processing package for the computation of weight curve associated with the discrete vector field topology. More...
class  WebSocketIO
class  ttkCinemaImagingEmbree
class  ttkCinemaImagingNative
class  ttkCinemaImagingVTK

Typedefs

using triplet = std::tuple<ttk::SimplexId, ttk::SimplexId, ttk::SimplexId>
 Persistence pair type (with persistence in double).
using polarity = unsigned char
using LongSimplexId = long long int
 Identifier type for simplices of any dimension.
using SimplexId = int
 Identifier type for simplices of any dimension.
using ThreadId = int
 Identifier type for threads (i.e. with OpenMP).
using TaskId = int
 Identifier type for tasks (i.e. with OpenMP).
using real = double
using DiagramType = std::vector<PersistencePair>
 Persistence Diagram type as a vector of Persistence pairs.
using MatchingType
 Matching between two Persistence Diagram pairs.
using GoodDiagram = std::vector<Good>
using BidderDiagram = std::vector<Bidder>
using Matrix = std::vector<std::vector<double>>
using Matrice = std::vector<std::vector<double>>
using VectorMatchingTuple = std::vector<MatchingType>
using RipsPersistencePair
using ValuesPair = std::pair<double, double>
using trackingTuple = std::tuple<int, int, std::vector<SimplexId>>

Enumerations

enum class  CriticalType {
  Local_minimum = 0 , Saddle1 , Saddle2 , Local_maximum ,
  Degenerate , Regular
}
 default value for critical index More...
enum  Direction { Forward = 0 , Backward }
enum class  CompressionType { PersistenceDiagram = 0 , Other = 1 }

Functions

template<class dataType>
dataType getMaxValue (std::vector< std::vector< dataType > > &matrix, bool balancedAsgn)
template<typename dataType>
dataType getLowerBoundCost (std::vector< std::vector< dataType > > &costMatrix)
constexpr unsigned long long str2int (const char *str, int h=0)
template<typename scalarType, typename idType>
void sortVertices (const size_t nVerts, const scalarType *const scalars, const idType *const offsets, SimplexId *const order, const int nThreads)
 Sort vertices according to scalars disambiguated by offsets.
template<typename scalarType>
void preconditionOrderArray (const size_t nVerts, const scalarType *const scalars, SimplexId *const order, const int nThreads=ttk::globalThreadNumber_)
 Precondition an order array to be consumed by the base layer API.
template<typename T, typename U>
void shuffle (std::vector< T > &toShuffle, U &&rng)
 Platform-independent alternative to std::shuffle implementing the Fisher-Yates shuffle algorithm.
template<class dataType>
bool isDeathHigher (ftm::FTMTree_MT *tree1, ftm::idNode tree1Node, ftm::FTMTree_MT *tree2, ftm::idNode tree2Node)
template<class dataType>
dataType getMinMaxLocal (const ftm::FTMTree_MT *tree, ftm::idNode nodeId, bool getMin=true)
template<class dataType>
std::tuple< dataType, dataType > getMinMaxLocalT (ftm::FTMTree_MT *tree, ftm::idNode nodeId)
template<class dataType>
std::tuple< dataType, dataType > getNormalizedBirthDeath (const ftm::FTMTree_MT *tree, ftm::idNode nodeId, dataType newMin=0.0, dataType newMax=1.0)
template<class dataType>
std::tuple< dataType, dataType > getParametrizedBirthDeath (ftm::FTMTree_MT *tree, ftm::idNode node, bool normalize)
template<class dataType>
dataType getMinMaxLocalFromVector (ftm::FTMTree_MT *tree, ftm::idNode nodeId, std::vector< dataType > &scalarsVector, bool getMin=true)
template<class dataType>
std::shared_ptr< ftm::FTMTree_MTmakeFakeTree (dataType *nodesScalar, std::vector< SimplexId > &nodes, std::vector< std::tuple< ftm::idNode, ftm::idNode > > &arcs)
template<class dataType>
ftm::MergeTree< dataType > makeFakeMergeTree (std::vector< dataType > &scalarsVector, std::vector< std::tuple< ftm::idNode, ftm::idNode > > &arcs)
void computeWeightedBarycenter (std::vector< DiagramType > &intermediateDiagrams, std::vector< double > &weights, DiagramType &barycenter, std::vector< std::vector< MatchingType > > &matchings, const ttk::Debug &dbg, const bool ProgBarycenter)

Variables

COMMON_EXPORTS int globalThreadNumber_ = 1
COMMON_EXPORTS int MPIrank_ = -1
COMMON_EXPORTS int MPIsize_ = -1
const char MaskScalarFieldName [] = "ttkMaskScalarField"
 default name for mask scalar field
const char VertexScalarFieldName [] = "ttkVertexScalarField"
 default name for vertex scalar field
const char CellScalarFieldName [] = "ttkCellScalarField"
 default name for cell scalar field
const char OffsetScalarFieldName [] = "ttkOffsetScalarField"
 default name for offset scalar field
const char OffsetFieldUName [] = "ttkOffsetFieldU"
 default name for bivariate offset fields
const char OffsetFieldVName [] = "ttkOffsetFieldV"
const char MorseSmaleCellDimensionName [] = "CellDimension"
const char MorseSmaleCellIdName [] = "CellId"
const char MorseSmaleBoundaryName [] = "IsOnBoundary"
const char MorseSmaleManifoldSizeName [] = "ManifoldSize"
const char MorseSmaleSourceIdName [] = "SourceId"
const char MorseSmaleDestinationIdName [] = "DestinationId"
const char MorseSmaleSeparatrixIdName [] = "SeparatrixId"
const char MorseSmaleSeparatrixTypeName [] = "SeparatrixType"
const char MorseSmaleSeparatrixMaximumName [] = "SeparatrixFunctionMaximum"
const char MorseSmaleSeparatrixMinimumName [] = "SeparatrixFunctionMinimum"
const char MorseSmaleSeparatrixDifferenceName [] = "SeparatrixFunctionDifference"
const char MorseSmaleCriticalPointsOnBoundaryName [] = "NumberOfCriticalPointsOnBoundary"
const char MorseSmaleAscendingName [] = "AscendingManifold"
const char MorseSmaleDescendingName [] = "DescendingManifold"
const char MorseSmaleManifoldName [] = "MorseSmaleManifold"
const char SeparatrixStabilityOccurrenceCount [] = "Occurrence"
const char SeparatrixStabilityIsomorphismClassId [] = "IsomorphismClassId"
const char SeparatrixStabilityMatchingIdName [] = "MatchingIdInBlock"
const char SeparatrixStabilityMatchingIdSeparatrixName [] = "SeparatrixMatchingIdInBlock"
const char PersistenceCriticalTypeName [] = "CriticalType"
const char PersistenceBirthName [] = "Birth"
const char PersistenceDeathName [] = "Death"
const char PersistenceCoordinatesName [] = "Coordinates"
const char PersistencePairIdentifierName [] = "PairIdentifier"
const char PersistenceName [] = "Persistence"
const char PersistencePairTypeName [] = "PairType"
const char PersistenceIsFinite [] = "IsFinite"
const char compactTriangulationIndex [] = "ttkCompactTriangulationIndex"
const int CriticalTypeNumber = 6
 number of different critical types
COMMON_EXPORTS bool welcomeMsg_ = true
COMMON_EXPORTS bool goodbyeMsg_ = true
COMMON_EXPORTS int globalDebugLevel_ = 0

Detailed Description

TTK base package defining the standard types.

Minimalist namespace that handles simple statistics computations (mean, variance, correlation etc.).

Provide methods related to Merge Trees and their management with Torch.

Minimalist namespace that handles simple geometric computations (operations on std::vectors, barycentric coordinates, etc.).

TTK classes for the segmentation of an arc in the Reeb Graph.

TTK DataType management for the reeb graph.

TTK structures for the reeb graph.

TTK processing package that manage a parallel version of vector Same as in FTM: Common ?.

Union find compliant with parallel find and maintaining the current local propagation inspired by ttk::UnionFind.

TTK processing package that add persistence pairs features.

TTK container representing a node of the FTMTree_MT.

TTK processing package that manage a parallel vecrion of vector.

TTK processing package that efficiently computes the sublevel set tree of scalar data and more (data segmentation, topological simplification, persistence diagrams, persistence curves, etc.).

TTK class representing a SuperArc of a tree, containing regular vertices.

TTK structures for the contour tree.

TTK classes for the segmentation of the contour tree.

TTK container representing a node of the MergeTree.

TTK processing package that efficiently computes the contour tree of scalar data and more (data segmentation, topological simplification, persistence diagrams, persistence curves, etc.).

The Topology ToolKit.

Parameters
dataTypeData type of the input scalar field (char, float, etc.).

Related publication
"Contour Forests: Fast Multi-threaded Augmented Contour Trees"
Charles Gueunet, Pierre Fortin, Julien Jomier, Julien Tierny
Proc. of IEEE LDAV 2016.

See also
ttkContourForests.cpp for a usage example.
Parameters
dataTypeData type of the input scalar field (char, float, etc.).

Related publication
"Contour Forests: Fast Multi-threaded Augmented Contour Trees"
Charles Gueunet, Pierre Fortin, Julien Jomier, Julien Tierny
Proc. of IEEE LDAV 2016.

Related publication
"Contour Forests: Fast Multi-threaded Augmented Contour Trees"
Charles Gueunet, Pierre Fortin, Julien Jomier, Julien Tierny
Proc. of IEEE LDAV 2016.

Related publication:
"Topomap: A 0-dimensional homology preserving projection of high-dimensional data"
Harish Doraiswamy, Julien Tierny, Paulo J. S. Silva, Luis Gustavo Nonato, and Claudio Silva
Proc. of IEEE VIS 2020.
IEEE Transactions on Visualization and Computer Graphics 27(2): 561-571, 2020.
"Topological Autoencoders"
Michael Moor, Max Horn, Bastian Rieck, Karsten Borgwardt,
Proceedings of the 37th International Conference on Machine Learning,


  1. "Optimizing persistent homology-based functions"
    Mathieu Carriere, Frederic Chazal, Marc Glisse, Yuichi Ike, Hariprasad Kannan, Yuhei Umeda,
    Proceedings of the 38th International Conference on Machine Learning,

  2. "Topological Autoencoders++: Fast and Accurate Cycle-Aware Dimensionality Reduction"
    Mattéo Clémot, Julie Digne, Julien Tierny,
    IEEE Transactions on Visualization and Computer Graphics. Accepted, to be presented at IEEE VIS 2026.
Parameters
dataTypeData type of the input scalar field (char, float, etc.).
See also
ttkContourForests.cpp for a usage example.
Parameters
dataTypeData type of the input scalar field (char, float, etc.).
dataTypeData type of the input scalar field (char, float, etc.).
See also
ttkFTMTree.cpp for a usage example.

Online examples:

Author
Mathieu Pont (mathi.nosp@m.eu.p.nosp@m.ont@l.nosp@m.ip6..nosp@m.fr)
Date
2021.

Utils function for manipulating FTMTree class

Parameters
dataTypeData type of the input scalar field (char, float, etc.).
See also
ttkPersistenceDiagram.cpp for a usage example.
ftrGraph
Author
Charles Gueunet charl.nosp@m.es.g.nosp@m.ueune.nosp@m.t@li.nosp@m.p6.fr
Date
2018-01-22
See also
ttkFTRGraph.h for a usage example.
Author
Julien Tierny julie.nosp@m.n.ti.nosp@m.erny@.nosp@m.lip6.nosp@m..fr
Date
February 2016.

Related publication
"Merge Tree Geodesics and Barycenters with Path Mappings"
F. Wetzels, M. Pont, J. Tierny and C. Garth.
Proc. of IEEE VIS 2023.
IEEE Transactions on Visualization and Computer Graphics, 2024

Author
Mathieu Pont mathi.nosp@m.eu.p.nosp@m.ont@l.nosp@m.ip6..nosp@m.fr
Date
2023.

Related publication
"Merge Tree Geodesics and Barycenters with Path Mappings"
F. Wetzels, M. Pont, J. Tierny and C. Garth.
Proc. of IEEE VIS 2023.
IEEE Transactions on Visualization and Computer Graphics, 2024

Online examples:

It is used in ttk::ProgressiveTopology for the definition of efficient progressive algorithms for the computation of critical points and extremum-saddle persistence diagrams.

It is also used in ttk::ApproximateTopology for the approximate computation of the extremum-saddle persistence diagrams with guarantees.

Related publications
"A Progressive Approach to Scalar Field Topology"
Jules Vidal, Pierre Guillou, Julien Tierny
IEEE Transactions on Visualization and Computer Graphics, 2021

"Fast Approximation of Persistence Diagrams with Guarantees"
Jules Vidal, Julien Tierny
IEEE Symposium on Large Data Visualization and Analysis (LDAV), 2021

See also
ProgressiveTopology
ApproximateTopology
Author
Mathieu Pont mathi.nosp@m.eu.p.nosp@m.ont@l.nosp@m.ip6..nosp@m.fr
Date
September 2022.

Typedef Documentation

◆ BidderDiagram

using ttk::BidderDiagram = std::vector<Bidder>

Definition at line 326 of file PersistenceDiagramAuctionActor.h.

◆ DiagramType

using ttk::DiagramType = std::vector<PersistencePair>

Persistence Diagram type as a vector of Persistence pairs.

Definition at line 60 of file PersistenceDiagramUtils.h.

◆ GoodDiagram

using ttk::GoodDiagram = std::vector<Good>

Definition at line 194 of file PersistenceDiagramAuctionActor.h.

◆ LongSimplexId

using ttk::LongSimplexId = long long int

Identifier type for simplices of any dimension.

Definition at line 15 of file DataTypes.h.

◆ MatchingType

typedef std::tuple< int, int, double > ttk::MatchingType
Initial value:
std::tuple<int,
int,
double
>

Matching between two Persistence Diagram pairs.

id of first matching pair id of second matching pair matching cost

Definition at line 65 of file PersistenceDiagramUtils.h.

◆ Matrice

using ttk::Matrice = std::vector<std::vector<double>>

Definition at line 36 of file PersistenceDiagramDictionaryDecoding.h.

◆ Matrix

using ttk::Matrix = std::vector<std::vector<double>>

Definition at line 7 of file InitDictRandomly.h.

◆ polarity

using ttk::polarity = unsigned char

Definition at line 34 of file ApproximateTopology.h.

◆ real

using ttk::real = double

Definition at line 58 of file Os.h.

◆ RipsPersistencePair

Initial value:
std::pair<std::pair<std::vector<int>, double>,
std::pair<std::vector<int>, double>>

Definition at line 19 of file PersistenceDiagramWarmRestartAuction.h.

◆ SimplexId

using ttk::SimplexId = int

Identifier type for simplices of any dimension.

Definition at line 22 of file DataTypes.h.

◆ TaskId

using ttk::TaskId = int

Identifier type for tasks (i.e. with OpenMP).

Definition at line 29 of file DataTypes.h.

◆ ThreadId

using ttk::ThreadId = int

Identifier type for threads (i.e. with OpenMP).

Definition at line 26 of file DataTypes.h.

◆ trackingTuple

using ttk::trackingTuple = std::tuple<int, int, std::vector<SimplexId>>

Definition at line 20 of file TrackingFromCriticalPoints.h.

◆ triplet

Persistence pair type (with persistence in double).

Definition at line 33 of file ApproximateTopology.h.

◆ ValuesPair

using ttk::ValuesPair = std::pair<double, double>

Definition at line 21 of file PersistenceDiagramWarmRestartAuction.h.

◆ VectorMatchingTuple

using ttk::VectorMatchingTuple = std::vector<MatchingType>

Definition at line 37 of file PersistenceDiagramDictionaryDecoding.h.

Enumeration Type Documentation

◆ CompressionType

enum class ttk::CompressionType
strong
Enumerator
PersistenceDiagram 
Other 

Definition at line 28 of file TopologicalCompression.h.

◆ CriticalType

enum class ttk::CriticalType
strong

default value for critical index

Enumerator
Local_minimum 
Saddle1 
Saddle2 
Local_maximum 
Degenerate 
Regular 

Definition at line 88 of file DataTypes.h.

◆ Direction

Enumerator
Forward 
Backward 

Definition at line 117 of file IntegralLines.h.

Function Documentation

◆ computeWeightedBarycenter()

void ttk::computeWeightedBarycenter ( std::vector< DiagramType > & intermediateDiagrams,
std::vector< double > & weights,
DiagramType & barycenter,
std::vector< std::vector< MatchingType > > & matchings,
const ttk::Debug & dbg,
const bool ProgBarycenter )

Definition at line 3 of file PersistenceDiagramClustering.cpp.

◆ getLowerBoundCost()

template<typename dataType>
dataType ttk::getLowerBoundCost ( std::vector< std::vector< dataType > > & costMatrix)

Definition at line 232 of file AssignmentAuction.h.

◆ getMaxValue()

template<class dataType>
dataType ttk::getMaxValue ( std::vector< std::vector< dataType > > & matrix,
bool balancedAsgn )

Definition at line 105 of file AssignmentAuction.h.

◆ getMinMaxLocal()

template<class dataType>
dataType ttk::getMinMaxLocal ( const ftm::FTMTree_MT * tree,
ftm::idNode nodeId,
bool getMin = true )

Definition at line 30 of file MergeTreeUtils.h.

◆ getMinMaxLocalFromVector()

template<class dataType>
dataType ttk::getMinMaxLocalFromVector ( ftm::FTMTree_MT * tree,
ftm::idNode nodeId,
std::vector< dataType > & scalarsVector,
bool getMin = true )

Definition at line 91 of file MergeTreeUtils.h.

◆ getMinMaxLocalT()

template<class dataType>
std::tuple< dataType, dataType > ttk::getMinMaxLocalT ( ftm::FTMTree_MT * tree,
ftm::idNode nodeId )

Definition at line 56 of file MergeTreeUtils.h.

◆ getNormalizedBirthDeath()

template<class dataType>
std::tuple< dataType, dataType > ttk::getNormalizedBirthDeath ( const ftm::FTMTree_MT * tree,
ftm::idNode nodeId,
dataType newMin = 0.0,
dataType newMax = 1.0 )

Definition at line 65 of file MergeTreeUtils.h.

◆ getParametrizedBirthDeath()

template<class dataType>
std::tuple< dataType, dataType > ttk::getParametrizedBirthDeath ( ftm::FTMTree_MT * tree,
ftm::idNode node,
bool normalize )

Definition at line 84 of file MergeTreeUtils.h.

◆ isDeathHigher()

template<class dataType>
bool ttk::isDeathHigher ( ftm::FTMTree_MT * tree1,
ftm::idNode tree1Node,
ftm::FTMTree_MT * tree2,
ftm::idNode tree2Node )

Definition at line 15 of file MergeTreeUtils.h.

◆ makeFakeMergeTree()

template<class dataType>
ftm::MergeTree< dataType > ttk::makeFakeMergeTree ( std::vector< dataType > & scalarsVector,
std::vector< std::tuple< ftm::idNode, ftm::idNode > > & arcs )

Definition at line 144 of file MergeTreeUtils.h.

◆ makeFakeTree()

template<class dataType>
std::shared_ptr< ftm::FTMTree_MT > ttk::makeFakeTree ( dataType * nodesScalar,
std::vector< SimplexId > & nodes,
std::vector< std::tuple< ftm::idNode, ftm::idNode > > & arcs )

Definition at line 117 of file MergeTreeUtils.h.

◆ preconditionOrderArray()

template<typename scalarType>
void ttk::preconditionOrderArray ( const size_t nVerts,
const scalarType *const scalars,
SimplexId *const order,
const int nThreads = ttk::globalThreadNumber_ )
inline

Precondition an order array to be consumed by the base layer API.

Parameters
[in]nVertsnumber of vertices
[in]scalarspointer to scalar field buffer of size nVerts
[out]orderpointer to pre-allocated order buffer of size nVerts
[in]nThreadsnumber of threads to be used

Definition at line 70 of file OrderDisambiguation.h.

◆ shuffle()

template<typename T, typename U>
void ttk::shuffle ( std::vector< T > & toShuffle,
U && rng )

Platform-independent alternative to std::shuffle implementing the Fisher-Yates shuffle algorithm.

Parameters
[in,out]toShuffleVector of elements to be shuffled
[in]rngRandom number generator

Definition at line 13 of file Shuffle.h.

◆ sortVertices()

template<typename scalarType, typename idType>
void ttk::sortVertices ( const size_t nVerts,
const scalarType *const scalars,
const idType *const offsets,
SimplexId *const order,
const int nThreads )

Sort vertices according to scalars disambiguated by offsets.

Parameters
[in]nVertsnumber of vertices
[in]scalarsarray of size nVerts, main vertex comparator
[in]offsetsarray of size nVerts, disambiguate scalars on plateaux
[out]orderarray of size nVerts, computed order of vertices
[in]nThreadsnumber of parallel threads

Definition at line 20 of file OrderDisambiguation.h.

◆ str2int()

unsigned long long ttk::str2int ( const char * str,
int h = 0 )
constexpr

Definition at line 11 of file BottleneckDistance.h.

Variable Documentation

◆ CellScalarFieldName

const char ttk::CellScalarFieldName[] = "ttkCellScalarField"

default name for cell scalar field

Definition at line 38 of file DataTypes.h.

◆ compactTriangulationIndex

const char ttk::compactTriangulationIndex[] = "ttkCompactTriangulationIndex"

Definition at line 85 of file DataTypes.h.

◆ CriticalTypeNumber

const int ttk::CriticalTypeNumber = 6

number of different critical types

Definition at line 97 of file DataTypes.h.

◆ globalDebugLevel_

COMMON_EXPORTS int ttk::globalDebugLevel_ = 0
extern

Definition at line 8 of file Debug.cpp.

◆ globalThreadNumber_

COMMON_EXPORTS int ttk::globalThreadNumber_ = 1
extern

Definition at line 6 of file BaseClass.cpp.

◆ goodbyeMsg_

COMMON_EXPORTS bool ttk::goodbyeMsg_ = true
extern

Definition at line 7 of file Debug.cpp.

◆ MaskScalarFieldName

const char ttk::MaskScalarFieldName[] = "ttkMaskScalarField"

default name for mask scalar field

Definition at line 32 of file DataTypes.h.

◆ MorseSmaleAscendingName

const char ttk::MorseSmaleAscendingName[] = "AscendingManifold"

Definition at line 62 of file DataTypes.h.

◆ MorseSmaleBoundaryName

const char ttk::MorseSmaleBoundaryName[] = "IsOnBoundary"

Definition at line 50 of file DataTypes.h.

◆ MorseSmaleCellDimensionName

const char ttk::MorseSmaleCellDimensionName[] = "CellDimension"

Definition at line 48 of file DataTypes.h.

◆ MorseSmaleCellIdName

const char ttk::MorseSmaleCellIdName[] = "CellId"

Definition at line 49 of file DataTypes.h.

◆ MorseSmaleCriticalPointsOnBoundaryName

const char ttk::MorseSmaleCriticalPointsOnBoundaryName[] = "NumberOfCriticalPointsOnBoundary"

Definition at line 60 of file DataTypes.h.

◆ MorseSmaleDescendingName

const char ttk::MorseSmaleDescendingName[] = "DescendingManifold"

Definition at line 63 of file DataTypes.h.

◆ MorseSmaleDestinationIdName

const char ttk::MorseSmaleDestinationIdName[] = "DestinationId"

Definition at line 53 of file DataTypes.h.

◆ MorseSmaleManifoldName

const char ttk::MorseSmaleManifoldName[] = "MorseSmaleManifold"

Definition at line 64 of file DataTypes.h.

◆ MorseSmaleManifoldSizeName

const char ttk::MorseSmaleManifoldSizeName[] = "ManifoldSize"

Definition at line 51 of file DataTypes.h.

◆ MorseSmaleSeparatrixDifferenceName

const char ttk::MorseSmaleSeparatrixDifferenceName[] = "SeparatrixFunctionDifference"

Definition at line 58 of file DataTypes.h.

◆ MorseSmaleSeparatrixIdName

const char ttk::MorseSmaleSeparatrixIdName[] = "SeparatrixId"

Definition at line 54 of file DataTypes.h.

◆ MorseSmaleSeparatrixMaximumName

const char ttk::MorseSmaleSeparatrixMaximumName[] = "SeparatrixFunctionMaximum"

Definition at line 56 of file DataTypes.h.

◆ MorseSmaleSeparatrixMinimumName

const char ttk::MorseSmaleSeparatrixMinimumName[] = "SeparatrixFunctionMinimum"

Definition at line 57 of file DataTypes.h.

◆ MorseSmaleSeparatrixTypeName

const char ttk::MorseSmaleSeparatrixTypeName[] = "SeparatrixType"

Definition at line 55 of file DataTypes.h.

◆ MorseSmaleSourceIdName

const char ttk::MorseSmaleSourceIdName[] = "SourceId"

Definition at line 52 of file DataTypes.h.

◆ MPIrank_

COMMON_EXPORTS int ttk::MPIrank_ = -1
extern

Definition at line 9 of file BaseClass.cpp.

◆ MPIsize_

COMMON_EXPORTS int ttk::MPIsize_ = -1
extern

Definition at line 10 of file BaseClass.cpp.

◆ OffsetFieldUName

const char ttk::OffsetFieldUName[] = "ttkOffsetFieldU"

default name for bivariate offset fields

Definition at line 44 of file DataTypes.h.

◆ OffsetFieldVName

const char ttk::OffsetFieldVName[] = "ttkOffsetFieldV"

Definition at line 45 of file DataTypes.h.

◆ OffsetScalarFieldName

const char ttk::OffsetScalarFieldName[] = "ttkOffsetScalarField"

default name for offset scalar field

Definition at line 41 of file DataTypes.h.

◆ PersistenceBirthName

const char ttk::PersistenceBirthName[] = "Birth"

Definition at line 76 of file DataTypes.h.

◆ PersistenceCoordinatesName

const char ttk::PersistenceCoordinatesName[] = "Coordinates"

Definition at line 78 of file DataTypes.h.

◆ PersistenceCriticalTypeName

const char ttk::PersistenceCriticalTypeName[] = "CriticalType"

Definition at line 75 of file DataTypes.h.

◆ PersistenceDeathName

const char ttk::PersistenceDeathName[] = "Death"

Definition at line 77 of file DataTypes.h.

◆ PersistenceIsFinite

const char ttk::PersistenceIsFinite[] = "IsFinite"

Definition at line 82 of file DataTypes.h.

◆ PersistenceName

const char ttk::PersistenceName[] = "Persistence"

Definition at line 80 of file DataTypes.h.

◆ PersistencePairIdentifierName

const char ttk::PersistencePairIdentifierName[] = "PairIdentifier"

Definition at line 79 of file DataTypes.h.

◆ PersistencePairTypeName

const char ttk::PersistencePairTypeName[] = "PairType"

Definition at line 81 of file DataTypes.h.

◆ SeparatrixStabilityIsomorphismClassId

const char ttk::SeparatrixStabilityIsomorphismClassId[] = "IsomorphismClassId"

Definition at line 69 of file DataTypes.h.

◆ SeparatrixStabilityMatchingIdName

const char ttk::SeparatrixStabilityMatchingIdName[] = "MatchingIdInBlock"

Definition at line 70 of file DataTypes.h.

◆ SeparatrixStabilityMatchingIdSeparatrixName

const char ttk::SeparatrixStabilityMatchingIdSeparatrixName[] = "SeparatrixMatchingIdInBlock"

Definition at line 71 of file DataTypes.h.

◆ SeparatrixStabilityOccurrenceCount

const char ttk::SeparatrixStabilityOccurrenceCount[] = "Occurrence"

Definition at line 68 of file DataTypes.h.

◆ VertexScalarFieldName

const char ttk::VertexScalarFieldName[] = "ttkVertexScalarField"

default name for vertex scalar field

Definition at line 35 of file DataTypes.h.

◆ welcomeMsg_

COMMON_EXPORTS bool ttk::welcomeMsg_ = true
extern

Definition at line 6 of file Debug.cpp.