TTK
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ttk::JacobiSet Class Reference

TTK processing package for the computation of the Jacobi set of bivariate volumetric data. More...

#include <JacobiSet.h>

Inheritance diagram for ttk::JacobiSet:
ttk::Debug ttk::BaseClass ttkJacobiSet

Public Member Functions

 JacobiSet ()
 
template<class dataTypeU , class dataTypeV , typename triangulationType >
int execute (std::vector< std::pair< SimplexId, char > > &jacobiSet, const dataTypeU *const uField, const dataTypeV *const vField, const triangulationType &triangulation, std::vector< char > *isPareto=nullptr)
 
template<class dataTypeU , class dataTypeV , typename triangulationType >
char getCriticalType (const SimplexId &edgeId, const dataTypeU *const uField, const dataTypeV *const vField, const triangulationType &triangulation)
 
template<class dataTypeU , class dataTypeV >
int perturb (const dataTypeU *const uField, const dataTypeV *const vField, const dataTypeU uEpsilon=Geometry::powIntTen(-DBL_DIG), const dataTypeV vEpsilon=Geometry::powIntTen(-DBL_DIG)) const
 
void setEdgeFans (const std::vector< std::vector< SimplexId > > *edgeFans)
 
void setEdgeFanLinkEdgeList (const std::vector< std::vector< std::pair< SimplexId, SimplexId > > > *edgeFanLinkEdgeLists)
 
void setEdgeList (const std::vector< std::pair< SimplexId, SimplexId > > *edgeList)
 
void setSosOffsets (std::vector< SimplexId > *sosOffsets)
 
void setSosOffsetsU (const SimplexId *const sosOffsets)
 
void setSosOffsetsV (const SimplexId *const sosOffsets)
 
void setTetList (const SimplexId *tetList)
 
void setVertexNumber (const SimplexId &vertexNumber)
 
void preconditionTriangulation (AbstractTriangulation *const 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 Member Functions

template<class dataTypeU , class dataTypeV >
int executeLegacy (std::vector< std::pair< SimplexId, char > > &jacobiSet, const dataTypeU *const uField, const dataTypeV *const vField)
 
- 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)
 

Protected Attributes

SimplexId vertexNumber_ {}
 
const SimplexIdtetList_ {}
 
const std::vector< std::pair< SimplexId, SimplexId > > * edgeList_ {}
 
const std::vector< std::vector< std::pair< SimplexId, SimplexId > > > * edgeFanLinkEdgeLists_ {}
 
const std::vector< std::vector< SimplexId > > * edgeFans_ {}
 
const SimplexIdsosOffsetsU_ {}
 
const SimplexIdsosOffsetsV_ {}
 
- 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

- Static Protected Attributes inherited from ttk::Debug
static COMMON_EXPORTS debug::LineMode lastLineMode = ttk::debug::LineMode::NEW
 

Detailed Description

TTK processing package for the computation of the Jacobi set of bivariate volumetric data.

Author
Julien Tierny julie.nosp@m.n.ti.nosp@m.erny@.nosp@m.lip6.nosp@m..fr
Date
June 2015.

Given a bivariate scalar field defined on a PL 3-manifold, this package produces the list of Jacobi edges (each entry is a pair given by the edge identifier and the Jacobi edge type).

Parameters
dataTypeUData type of the input first component field (char, float, etc.).
dataTypeVData type of the input second component field (char, float, etc.)

Related publication
"Jacobi sets of multiple Morse functions"
Herbert Edelsbrunner, John Harer
Foundations of Computational Mathematics. Cambridge University Press, 2002.

See also
ttkJacobiSet.cpp for a usage example.

Online examples:

Definition at line 39 of file JacobiSet.h.

Constructor & Destructor Documentation

◆ JacobiSet()

ttk::JacobiSet::JacobiSet ( )

Definition at line 3 of file JacobiSet.cpp.

Member Function Documentation

◆ execute()

template<class dataTypeU , class dataTypeV , typename triangulationType >
int ttk::JacobiSet::execute ( std::vector< std::pair< SimplexId, char > > &  jacobiSet,
const dataTypeU *const  uField,
const dataTypeV *const  vField,
const triangulationType &  triangulation,
std::vector< char > *  isPareto = nullptr 
)

Definition at line 6 of file JacobiSet_Template.h.

◆ executeLegacy()

template<class dataTypeU , class dataTypeV >
int ttk::JacobiSet::executeLegacy ( std::vector< std::pair< SimplexId, char > > &  jacobiSet,
const dataTypeU *const  uField,
const dataTypeV *const  vField 
)
protected

Definition at line 122 of file JacobiSet_Template.h.

◆ getCriticalType()

template<class dataTypeU , class dataTypeV , typename triangulationType >
char ttk::JacobiSet::getCriticalType ( const SimplexId edgeId,
const dataTypeU *const  uField,
const dataTypeV *const  vField,
const triangulationType &  triangulation 
)

Definition at line 301 of file JacobiSet_Template.h.

◆ perturb()

template<class dataTypeU , class dataTypeV >
int ttk::JacobiSet::perturb ( const dataTypeU *const  uField,
const dataTypeV *const  vField,
const dataTypeU  uEpsilon = Geometry::powIntTen(-DBL_DIG),
const dataTypeV  vEpsilon = Geometry::powIntTen(-DBL_DIG) 
) const

Definition at line 557 of file JacobiSet_Template.h.

◆ preconditionTriangulation()

void ttk::JacobiSet::preconditionTriangulation ( AbstractTriangulation *const  triangulation)
inline

Definition at line 118 of file JacobiSet.h.

◆ setEdgeFanLinkEdgeList()

void ttk::JacobiSet::setEdgeFanLinkEdgeList ( const std::vector< std::vector< std::pair< SimplexId, SimplexId > > > *  edgeFanLinkEdgeLists)
inline

Definition at line 67 of file JacobiSet.h.

◆ setEdgeFans()

void ttk::JacobiSet::setEdgeFans ( const std::vector< std::vector< SimplexId > > *  edgeFans)
inline

Definition at line 63 of file JacobiSet.h.

◆ setEdgeList()

void ttk::JacobiSet::setEdgeList ( const std::vector< std::pair< SimplexId, SimplexId > > *  edgeList)
inline

Definition at line 73 of file JacobiSet.h.

◆ setSosOffsets()

void ttk::JacobiSet::setSosOffsets ( std::vector< SimplexId > *  sosOffsets)
inline

Definition at line 78 of file JacobiSet.h.

◆ setSosOffsetsU()

void ttk::JacobiSet::setSosOffsetsU ( const SimplexId *const  sosOffsets)
inline
Precondition
For this function to behave correctly in the absence of the VTK wrapper, ttk::preconditionOrderArray() needs to be called to fill the sosOffsets buffer prior to any computation (the VTK wrapper already includes a mechanism to automatically generate such a preconditioned buffer).
See also
examples/c++/main.cpp for an example use.

Definition at line 91 of file JacobiSet.h.

◆ setSosOffsetsV()

void ttk::JacobiSet::setSosOffsetsV ( const SimplexId *const  sosOffsets)
inline
Precondition
For this function to behave correctly in the absence of the VTK wrapper, ttk::preconditionOrderArray() needs to be called to fill the sosOffsets buffer prior to any computation (the VTK wrapper already includes a mechanism to automatically generate such a preconditioned buffer).
See also
examples/c++/main.cpp for an example use.

Definition at line 103 of file JacobiSet.h.

◆ setTetList()

void ttk::JacobiSet::setTetList ( const SimplexId tetList)
inline

Definition at line 109 of file JacobiSet.h.

◆ setVertexNumber()

void ttk::JacobiSet::setVertexNumber ( const SimplexId vertexNumber)
inline

Definition at line 113 of file JacobiSet.h.

Member Data Documentation

◆ edgeFanLinkEdgeLists_

const std::vector<std::vector<std::pair<SimplexId, SimplexId> > >* ttk::JacobiSet::edgeFanLinkEdgeLists_ {}
protected

Definition at line 136 of file JacobiSet.h.

◆ edgeFans_

const std::vector<std::vector<SimplexId> >* ttk::JacobiSet::edgeFans_ {}
protected

Definition at line 138 of file JacobiSet.h.

◆ edgeList_

const std::vector<std::pair<SimplexId, SimplexId> >* ttk::JacobiSet::edgeList_ {}
protected

Definition at line 133 of file JacobiSet.h.

◆ sosOffsetsU_

const SimplexId* ttk::JacobiSet::sosOffsetsU_ {}
protected

Definition at line 139 of file JacobiSet.h.

◆ sosOffsetsV_

const SimplexId * ttk::JacobiSet::sosOffsetsV_ {}
protected

Definition at line 139 of file JacobiSet.h.

◆ tetList_

const SimplexId* ttk::JacobiSet::tetList_ {}
protected

Definition at line 132 of file JacobiSet.h.

◆ vertexNumber_

SimplexId ttk::JacobiSet::vertexNumber_ {}
protected

Definition at line 131 of file JacobiSet.h.


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