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

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

Namespaces

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

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  Arc
 
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  ArrayPreconditioning
 
class  AssignmentAuction
 
class  AssignmentExhaustive
 
class  AssignmentMunkres
 
class  AssignmentSolver
 
class  BarycentricSubdivision
 Subdivise a triangulation according to triangle barycenter. More...
 
class  BaseClass
 
class  Bidder
 
class  BottleneckDistance
 
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  BranchMappingDistance
 
class  CellArray
 CellArray generic array of cells 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  CommandLineParser
 Basic command line parsing. More...
 
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...
 
struct  Compare
 
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  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  ContourTreeSimplificationMetric
 
struct  criticalPointPairComparison
 Comparison between critical point pairs ( (Extremum,Saddle), dist(M,S) ) More...
 
struct  CriticalVertex
 Critical Vertex. More...
 
class  Debug
 Minimalist debugging class. More...
 
class  DebugMemory
 Legacy backward compatibility. More...
 
class  DebugTimer
 Legacy backward compatibility. 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
 
class  DynamicTree
 Implements the Dynamic Tree data-structure (or ST-Tree) More...
 
struct  DynTreeNode
 class representing a node of a tree and the link to its parent if not the root 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  FlatJaggedArray
 Replacement for std::vector<std::vector<SimplexId>> More...
 
class  FTMAtomicVector
 
class  FTRAtomicVector
 
class  GabowTarjan
 
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  Good
 
class  Graph
 
class  HarmonicField
 TTK processing package for the topological simplification of scalar data. More...
 
class  HelloWorld
 
class  Icosphere
 
class  Identifiers
 
class  ImplicitCluster
 
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  ImplicitWithPreconditions
 Implicit Triangulation class with preconditioning. More...
 
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  LegacyTopologicalSimplification
 TTK processing package for the topological simplification of scalar data. More...
 
class  Lock
 RAII wrapper around OpenMP lock. 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  LRUCache
 LRU cache implementation. More...
 
class  MandatoryCriticalPoints
 TTK processing package for the computation of mandatory critical points in uncertain scalar data. More...
 
struct  mandatorySaddleComparison
 Comparison between mandatory saddles (Saddle id, Number of merged extrema) More...
 
class  ManifoldCheck
 TTK processing package for manifold checks. More...
 
class  MarchingTetrahedra
 TTK processing package for Marching Tetra/Triangles computations. More...
 
class  Memory
 
class  MergeTreeAutoencoder
 
class  MergeTreeAutoencoderDecoding
 
class  MergeTreeAxesAlgorithmBase
 
class  MergeTreeBarycenter
 
class  MergeTreeBase
 
class  MergeTreeClustering
 
class  MergeTreeDistance
 
class  MergeTreeDistanceMatrix
 
class  MergeTreeNeuralBase
 
class  MergeTreeNeuralLayer
 
class  MergeTreeNeuralNetwork
 
class  MergeTreePrincipalGeodesics
 
class  MergeTreePrincipalGeodesicsBase
 
class  MergeTreePrincipalGeodesicsDecoding
 
class  MergeTreeTemporalReduction
 
class  MergeTreeTemporalReductionDecoding
 
class  MergeTreeVisualization
 
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  Node
 
class  OneSkeleton
 OneSkeleton processing package. More...
 
class  OsCall
 Os-specifics. More...
 
struct  pairComparison
 Comparison of the second member of a std::pair<int,double> More...
 
class  PathCompression
 TTK processing package for the computation of Morse-Smale segmentations using Path Compression. More...
 
class  PathMappingDistance
 
class  PDBarycenter
 
class  PDClustering
 
class  PDFBounds
 
class  PDFHistograms
 
class  PeriodicImplicitTriangulation
 TTK triangulation class for grids with periodic boundary conditions implemented in all directions. More...
 
class  PeriodicImplicitTriangulationCRTP
 
class  PeriodicNoPreconditions
 Periodic implicit Triangulation class without preconditioning. More...
 
class  PeriodicWithPreconditions
 Periodic implicit Triangulation class with 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...
 
class  PersistenceDiagramAuction
 
class  PersistenceDiagramAuctionActor
 
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  PersistenceDiagramDistanceMatrix
 
class  PersistenceDiagramWarmRestartAuction
 TTK base class that computes the Wasserstein distance between two persistence diagrams. More...
 
class  PersistenceMetric
 
struct  PersistencePair
 Persistence Pair. More...
 
class  PersistentGenerators
 TTK PersistentGenerators processing package. More...
 
class  PersistentSimplexPairs
 Textbook algorithm to find persistence pairs. More...
 
class  PlanarGraphLayout
 TTK planarGraphLayout processing package. More...
 
class  Program
 
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  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  Ray
 Data structure for a ray. 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  SubLevelSetTree
 
class  SuperArc
 
class  SurfaceGeometrySmoother
 TTK VTK-filter for smoothing meshes on surfaces. More...
 
class  SweepCmp
 
class  ThreeSkeleton
 ThreeSkeleton processing package. More...
 
class  Timer
 
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  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  ttkCinemaImagingEmbree
 
class  ttkCinemaImagingNative
 
class  ttkCinemaImagingVTK
 
class  TwoSkeleton
 TwoSkeleton processing package. More...
 
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  VisitedMask
 Auto-cleaning re-usable graph propagations data structure. More...
 
class  WebSocketIO
 
class  Wrapper
 Wrapper class to wrap ttk code. More...
 
class  ZeroSkeleton
 ZeroSkeleton processing package. More...
 

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 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)
 

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.
Author
Mathieu Pont mathi.nosp@m.eu.p.nosp@m.ont@l.nosp@m.ip6..nosp@m.fr
Date
2023.

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.

◆ 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.

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

◆ 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.