TTK
Loading...
Searching...
No Matches
ttk::TopologicalSimplification Class Reference

TTK processing package for the topological simplification of scalar data. More...

#include <TopologicalSimplification.h>

Inheritance diagram for ttk::TopologicalSimplification:
ttk::Debug ttk::BaseClass ttkTopologicalSimplification

Public Types

enum class  BACKEND { LEGACY , LTS , TO }
 

Public Member Functions

 TopologicalSimplification ()
 
template<typename dataType, typename triangulationType>
int execute (const dataType *const inputScalars, dataType *const outputScalars, const SimplexId *const identifiers, const SimplexId *const inputOffsets, SimplexId *const offsets, const SimplexId constraintNumber, const bool addPerturbation, triangulationType &triangulation, const ttk::DiagramType &constraintDiagram={})
 
void setBackend (const BACKEND arg)
 
int preconditionTriangulation (AbstractTriangulation *triangulation)
 
- Public Member Functions inherited from ttk::Debug
 Debug ()
 
 ~Debug () override
 
virtual int setDebugLevel (const int &debugLevel)
 
int setWrapper (const Wrapper *wrapper) override
 
int printMsg (const std::string &msg, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::vector< std::string > &msgs, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printErr (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
 
int printWrn (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const double &memory, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::vector< std::vector< std::string > > &rows, const debug::Priority &priority=debug::Priority::INFO, const bool hasHeader=true, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const
 
int printMsg (const debug::Separator &separator, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const
 
void setDebugMsgPrefix (const std::string &prefix)
 
- Public Member Functions inherited from ttk::BaseClass
 BaseClass ()
 
virtual ~BaseClass ()=default
 
int getThreadNumber () const
 
virtual int setThreadNumber (const int threadNumber)
 

Protected Attributes

BACKEND backend_ {BACKEND::LTS}
 
LegacyTopologicalSimplification legacyObject_
 
lts::LocalizedTopologicalSimplification ltsObject_
 
ttk::TopologicalOptimization topologyOptimizer_
 
SimplexId vertexNumber_ {}
 
bool UseFastPersistenceUpdate {true}
 
bool FastAssignmentUpdate {true}
 
int EpochNumber {1000}
 
int PDCMethod {1}
 
int MethodOptimization {0}
 
int FinePairManagement {0}
 
bool ChooseLearningRate {false}
 
double LearningRate {0.0001}
 
double Alpha {0.5}
 
double CoefStopCondition {0.01}
 
bool OptimizationWithoutMatching {false}
 
int ThresholdMethod {1}
 
double Threshold {0.01}
 
int LowerThreshold {-1}
 
int UpperThreshold {2}
 
int PairTypeToDelete {1}
 
bool ConstraintAveraging {true}
 
int PrintFrequency {10}
 
- Protected Attributes inherited from ttk::Debug
int debugLevel_
 
std::string debugMsgPrefix_
 
std::string debugMsgNamePrefix_
 
- Protected Attributes inherited from ttk::BaseClass
bool lastObject_
 
int threadNumber_
 
Wrapperwrapper_
 

Additional Inherited Members

- Protected Member Functions inherited from ttk::Debug
int printMsgInternal (const std::string &msg, const std::string &right, const std::string &filler, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsgInternal (const std::string &msg, const debug::Priority &priority, const debug::LineMode &lineMode, std::ostream &stream=std::cout) const
 
int welcomeMsg (std::ostream &stream)
 
- Static Protected Attributes inherited from ttk::Debug
static COMMON_EXPORTS debug::LineMode lastLineMode = ttk::debug::LineMode::NEW
 

Detailed Description

TTK processing package for the topological simplification of scalar data.

Author
Julien Tierny julie.nosp@m.n.ti.nosp@m.erny@.nosp@m.lip6.nosp@m..fr
Guillaume Favelier guill.nosp@m.aume.nosp@m..fave.nosp@m.lier.nosp@m.@lip6.nosp@m..fr
Date
February 2016

Given an input scalar field and a list of critical points to remove, this class minimally edits the scalar field such that the listed critical points disappear. This procedure is useful to speedup subsequent topological data analysis when outlier critical points can be easily identified. It is also useful for data simplification.

Related publications
"Generalized Topological Simplification of Scalar Fields on Surfaces"
Julien Tierny, Valerio Pascucci
IEEE Transactions on Visualization and Computer Graphics.
Proc. of IEEE VIS 2012.

"Localized Topological Simplification of Scalar Data"
Jonas Lukasczyk, Christoph Garth, Ross Maciejewski, Julien Tierny
IEEE Transactions on Visualization and Computer Graphics.
Proc. of IEEE VIS 2020.

"A Practical Solver for Scalar Data Topological Simplification"
Mohamed Kissi, Mathieu Pont, Joshua A. Levine, Julien Tierny
IEEE Transactions on Visualization and Computer Graphics.
Proc. of IEEE VIS 2024.

See also
ttkTopologicalSimplification.cpp for a usage example.

Online examples:

Definition at line 125 of file TopologicalSimplification.h.

Member Enumeration Documentation

◆ BACKEND

Enumerator
LEGACY 
LTS 
TO 

Definition at line 129 of file TopologicalSimplification.h.

Constructor & Destructor Documentation

◆ TopologicalSimplification()

ttk::TopologicalSimplification::TopologicalSimplification ( )

Definition at line 3 of file TopologicalSimplification.cpp.

Member Function Documentation

◆ execute()

template<typename dataType, typename triangulationType>
int ttk::TopologicalSimplification::execute ( const dataType *const inputScalars,
dataType *const outputScalars,
const SimplexId *const identifiers,
const SimplexId *const inputOffsets,
SimplexId *const offsets,
const SimplexId constraintNumber,
const bool addPerturbation,
triangulationType & triangulation,
const ttk::DiagramType & constraintDiagram = {} )

Definition at line 228 of file TopologicalSimplification.h.

◆ preconditionTriangulation()

int ttk::TopologicalSimplification::preconditionTriangulation ( AbstractTriangulation * triangulation)
inline

Definition at line 150 of file TopologicalSimplification.h.

◆ setBackend()

void ttk::TopologicalSimplification::setBackend ( const BACKEND arg)
inline

Definition at line 146 of file TopologicalSimplification.h.

Member Data Documentation

◆ Alpha

double ttk::TopologicalSimplification::Alpha {0.5}
protected

Definition at line 207 of file TopologicalSimplification.h.

◆ backend_

BACKEND ttk::TopologicalSimplification::backend_ {BACKEND::LTS}
protected

Definition at line 179 of file TopologicalSimplification.h.

◆ ChooseLearningRate

bool ttk::TopologicalSimplification::ChooseLearningRate {false}
protected

Definition at line 203 of file TopologicalSimplification.h.

◆ CoefStopCondition

double ttk::TopologicalSimplification::CoefStopCondition {0.01}
protected

Definition at line 211 of file TopologicalSimplification.h.

◆ ConstraintAveraging

bool ttk::TopologicalSimplification::ConstraintAveraging {true}
protected

Definition at line 221 of file TopologicalSimplification.h.

◆ EpochNumber

int ttk::TopologicalSimplification::EpochNumber {1000}
protected

Definition at line 187 of file TopologicalSimplification.h.

◆ FastAssignmentUpdate

bool ttk::TopologicalSimplification::FastAssignmentUpdate {true}
protected

Definition at line 186 of file TopologicalSimplification.h.

◆ FinePairManagement

int ttk::TopologicalSimplification::FinePairManagement {0}
protected

Definition at line 200 of file TopologicalSimplification.h.

◆ LearningRate

double ttk::TopologicalSimplification::LearningRate {0.0001}
protected

Definition at line 204 of file TopologicalSimplification.h.

◆ legacyObject_

LegacyTopologicalSimplification ttk::TopologicalSimplification::legacyObject_
protected

Definition at line 180 of file TopologicalSimplification.h.

◆ LowerThreshold

int ttk::TopologicalSimplification::LowerThreshold {-1}
protected

Definition at line 217 of file TopologicalSimplification.h.

◆ ltsObject_

lts::LocalizedTopologicalSimplification ttk::TopologicalSimplification::ltsObject_
protected

Definition at line 181 of file TopologicalSimplification.h.

◆ MethodOptimization

int ttk::TopologicalSimplification::MethodOptimization {0}
protected

Definition at line 195 of file TopologicalSimplification.h.

◆ OptimizationWithoutMatching

bool ttk::TopologicalSimplification::OptimizationWithoutMatching {false}
protected

Definition at line 214 of file TopologicalSimplification.h.

◆ PairTypeToDelete

int ttk::TopologicalSimplification::PairTypeToDelete {1}
protected

Definition at line 219 of file TopologicalSimplification.h.

◆ PDCMethod

int ttk::TopologicalSimplification::PDCMethod {1}
protected

Definition at line 191 of file TopologicalSimplification.h.

◆ PrintFrequency

int ttk::TopologicalSimplification::PrintFrequency {10}
protected

Definition at line 223 of file TopologicalSimplification.h.

◆ Threshold

double ttk::TopologicalSimplification::Threshold {0.01}
protected

Definition at line 216 of file TopologicalSimplification.h.

◆ ThresholdMethod

int ttk::TopologicalSimplification::ThresholdMethod {1}
protected

Definition at line 215 of file TopologicalSimplification.h.

◆ topologyOptimizer_

ttk::TopologicalOptimization ttk::TopologicalSimplification::topologyOptimizer_
protected

Definition at line 182 of file TopologicalSimplification.h.

◆ UpperThreshold

int ttk::TopologicalSimplification::UpperThreshold {2}
protected

Definition at line 218 of file TopologicalSimplification.h.

◆ UseFastPersistenceUpdate

bool ttk::TopologicalSimplification::UseFastPersistenceUpdate {true}
protected

Definition at line 185 of file TopologicalSimplification.h.

◆ vertexNumber_

SimplexId ttk::TopologicalSimplification::vertexNumber_ {}
protected

Definition at line 184 of file TopologicalSimplification.h.


The documentation for this class was generated from the following files: