TTK
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Attributes | List of all members
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 123 of file TopologicalSimplification.h.

Member Enumeration Documentation

◆ BACKEND

Enumerator
LEGACY 
LTS 
TO 

Definition at line 127 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 226 of file TopologicalSimplification.h.

◆ preconditionTriangulation()

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

Definition at line 148 of file TopologicalSimplification.h.

◆ setBackend()

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

Definition at line 144 of file TopologicalSimplification.h.

Member Data Documentation

◆ Alpha

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

Definition at line 205 of file TopologicalSimplification.h.

◆ backend_

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

Definition at line 177 of file TopologicalSimplification.h.

◆ ChooseLearningRate

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

Definition at line 201 of file TopologicalSimplification.h.

◆ CoefStopCondition

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

Definition at line 209 of file TopologicalSimplification.h.

◆ ConstraintAveraging

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

Definition at line 219 of file TopologicalSimplification.h.

◆ EpochNumber

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

Definition at line 185 of file TopologicalSimplification.h.

◆ FastAssignmentUpdate

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

Definition at line 184 of file TopologicalSimplification.h.

◆ FinePairManagement

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

Definition at line 198 of file TopologicalSimplification.h.

◆ LearningRate

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

Definition at line 202 of file TopologicalSimplification.h.

◆ legacyObject_

LegacyTopologicalSimplification ttk::TopologicalSimplification::legacyObject_
protected

Definition at line 178 of file TopologicalSimplification.h.

◆ LowerThreshold

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

Definition at line 215 of file TopologicalSimplification.h.

◆ ltsObject_

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

Definition at line 179 of file TopologicalSimplification.h.

◆ MethodOptimization

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

Definition at line 193 of file TopologicalSimplification.h.

◆ OptimizationWithoutMatching

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

Definition at line 212 of file TopologicalSimplification.h.

◆ PairTypeToDelete

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

Definition at line 217 of file TopologicalSimplification.h.

◆ PDCMethod

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

Definition at line 189 of file TopologicalSimplification.h.

◆ PrintFrequency

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

Definition at line 221 of file TopologicalSimplification.h.

◆ Threshold

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

Definition at line 214 of file TopologicalSimplification.h.

◆ ThresholdMethod

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

Definition at line 213 of file TopologicalSimplification.h.

◆ topologyOptimizer_

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

Definition at line 180 of file TopologicalSimplification.h.

◆ UpperThreshold

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

Definition at line 216 of file TopologicalSimplification.h.

◆ UseFastPersistenceUpdate

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

Definition at line 183 of file TopologicalSimplification.h.

◆ vertexNumber_

SimplexId ttk::TopologicalSimplification::vertexNumber_ {}
protected

Definition at line 182 of file TopologicalSimplification.h.


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