TTK
|
TTK processing package for the computation of critical points in PL scalar fields defined on PL manifolds. More...
#include <ScalarFieldCriticalPoints.h>
Public Types | |
enum class | BACKEND { GENERIC = 0 , PROGRESSIVE_TOPOLOGY = 1 } |
Public Member Functions | |
ScalarFieldCriticalPoints () | |
template<class triangulationType = AbstractTriangulation> | |
int | execute (const SimplexId *const offsets, const triangulationType *triangulation) |
template<class triangulationType = AbstractTriangulation> | |
int | executeLegacy (const SimplexId *const offsets, const triangulationType *triangulation) |
template<class triangulationType = AbstractTriangulation> | |
int | executeProgressive (const SimplexId *const offsets, const triangulationType *triangulation) |
template<class triangulationType > | |
void | checkProgressivityRequirement (const triangulationType *triangulation) |
template<class triangulationType = AbstractTriangulation> | |
int | getLowerUpperComponents (const SimplexId vertexId, const SimplexId *const offsets, const triangulationType *triangulation, bool &isLowerOnBoundary, bool &isUpperOnBoundary, std::vector< std::vector< ttk::SimplexId > > *upperComponents, std::vector< std::vector< ttk::SimplexId > > *lowerComponents) const |
template<class triangulationType = AbstractTriangulation> | |
char | getCriticalType (const SimplexId &vertexId, const SimplexId *const offsets, const triangulationType *triangulation, std::vector< std::vector< ttk::SimplexId > > *upperComponents=nullptr, std::vector< std::vector< ttk::SimplexId > > *lowerComponents=nullptr) const |
char | getCriticalType (const SimplexId &vertexId, const SimplexId *const offsets, const std::vector< std::pair< SimplexId, SimplexId > > &vertexLinkEdgeList) const |
void | setDomainDimension (const int &dimension) |
void | setOutput (std::vector< std::pair< SimplexId, char > > *criticalPoints) |
void | preconditionTriangulation (AbstractTriangulation *triangulation) |
void | setVertexLinkEdgeLists (const std::vector< std::vector< std::pair< SimplexId, SimplexId > > > *edgeList) |
int | setVertexNumber (const SimplexId &vertexNumber) |
void | setNonManifold (const bool b) |
void | displayStats () |
template<class triangulationType > | |
void | checkProgressivityRequirement (const triangulationType *ttkNotUsed(triangulation)) |
![]() | |
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) |
![]() | |
BaseClass () | |
virtual | ~BaseClass ()=default |
int | getThreadNumber () const |
virtual int | setThreadNumber (const int threadNumber) |
Protected Attributes | |
int | dimension_ {} |
SimplexId | vertexNumber_ {} |
const std::vector< std::vector< std::pair< SimplexId, SimplexId > > > * | vertexLinkEdgeLists_ {} |
std::vector< std::pair< SimplexId, char > > * | criticalPoints_ {} |
bool | forceNonManifoldCheck {false} |
BACKEND | BackEnd {BACKEND::PROGRESSIVE_TOPOLOGY} |
ProgressiveTopology | progT_ {} |
int | StartingResolutionLevel {0} |
int | StoppingResolutionLevel {-1} |
bool | IsResumable {false} |
double | TimeLimit {} |
![]() | |
int | debugLevel_ |
std::string | debugMsgPrefix_ |
std::string | debugMsgNamePrefix_ |
![]() | |
bool | lastObject_ |
int | threadNumber_ |
Wrapper * | wrapper_ |
Additional Inherited Members | |
![]() | |
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 COMMON_EXPORTS debug::LineMode | lastLineMode = ttk::debug::LineMode::NEW |
TTK processing package for the computation of critical points in PL scalar fields defined on PL manifolds.
This class computes the list of critical points of the input scalar field and classify them according to their type.
dataType | Data type of the input scalar field (char, float, etc.). |
Related publication
"Critical points and curvature for embedded polyhedral surfaces"
Thomas Banchoff
American Mathematical Monthly, 1970.
Progressive Approach used by default Related publication
"A Progressive Approach to Scalar Field Topology"
Jules Vidal, Pierre Guillou, Julien Tierny
IEEE Transactions on Visualization and Computer Graphics, 2021
Online examples:
Definition at line 58 of file ScalarFieldCriticalPoints.h.
|
strong |
Enumerator | |
---|---|
GENERIC | |
PROGRESSIVE_TOPOLOGY |
Definition at line 63 of file ScalarFieldCriticalPoints.h.
ttk::ScalarFieldCriticalPoints::ScalarFieldCriticalPoints | ( | ) |
Definition at line 3 of file ScalarFieldCriticalPoints.cpp.
void ttk::ScalarFieldCriticalPoints::checkProgressivityRequirement | ( | const triangulationType * | triangulation | ) |
void ttk::ScalarFieldCriticalPoints::checkProgressivityRequirement | ( | const triangulationType * | ttkNotUsedtriangulation | ) |
Definition at line 613 of file ScalarFieldCriticalPoints.h.
void ttk::ScalarFieldCriticalPoints::displayStats | ( | ) |
Definition at line 198 of file ScalarFieldCriticalPoints.cpp.
int ttk::ScalarFieldCriticalPoints::execute | ( | const SimplexId *const | offsets, |
const triangulationType * | triangulation | ||
) |
Execute the package.
offsets | Pointer to order field on vertices |
triangulation | Triangulation |
offsets
buffer prior to any computation (the VTK wrapper already includes a mechanism to automatically generate such a preconditioned buffer). Definition at line 181 of file ScalarFieldCriticalPoints.h.
int ttk::ScalarFieldCriticalPoints::executeLegacy | ( | const SimplexId *const | offsets, |
const triangulationType * | triangulation | ||
) |
Definition at line 225 of file ScalarFieldCriticalPoints.h.
int ttk::ScalarFieldCriticalPoints::executeProgressive | ( | const SimplexId *const | offsets, |
const triangulationType * | triangulation | ||
) |
Definition at line 205 of file ScalarFieldCriticalPoints.h.
char ttk::ScalarFieldCriticalPoints::getCriticalType | ( | const SimplexId & | vertexId, |
const SimplexId *const | offsets, | ||
const std::vector< std::pair< SimplexId, SimplexId > > & | vertexLinkEdgeList | ||
) | const |
Definition at line 10 of file ScalarFieldCriticalPoints.cpp.
char ttk::ScalarFieldCriticalPoints::getCriticalType | ( | const SimplexId & | vertexId, |
const SimplexId *const | offsets, | ||
const triangulationType * | triangulation, | ||
std::vector< std::vector< ttk::SimplexId > > * | upperComponents = nullptr , |
||
std::vector< std::vector< ttk::SimplexId > > * | lowerComponents = nullptr |
||
) | const |
Definition at line 531 of file ScalarFieldCriticalPoints.h.
int ttk::ScalarFieldCriticalPoints::getLowerUpperComponents | ( | const SimplexId | vertexId, |
const SimplexId *const | offsets, | ||
const triangulationType * | triangulation, | ||
bool & | isLowerOnBoundary, | ||
bool & | isUpperOnBoundary, | ||
std::vector< std::vector< ttk::SimplexId > > * | upperComponents, | ||
std::vector< std::vector< ttk::SimplexId > > * | lowerComponents | ||
) | const |
Definition at line 368 of file ScalarFieldCriticalPoints.h.
|
inline |
Definition at line 128 of file ScalarFieldCriticalPoints.h.
|
inline |
Definition at line 118 of file ScalarFieldCriticalPoints.h.
|
inline |
Definition at line 154 of file ScalarFieldCriticalPoints.h.
|
inline |
Definition at line 123 of file ScalarFieldCriticalPoints.h.
|
inline |
Definition at line 140 of file ScalarFieldCriticalPoints.h.
|
inline |
Set the number of vertices in the scalar field.
vertexNumber | Number of vertices in the data-set. |
Definition at line 149 of file ScalarFieldCriticalPoints.h.
|
protected |
Definition at line 170 of file ScalarFieldCriticalPoints.h.
|
protected |
Definition at line 165 of file ScalarFieldCriticalPoints.h.
|
protected |
Definition at line 161 of file ScalarFieldCriticalPoints.h.
|
protected |
Definition at line 167 of file ScalarFieldCriticalPoints.h.
|
protected |
Definition at line 174 of file ScalarFieldCriticalPoints.h.
|
protected |
Definition at line 171 of file ScalarFieldCriticalPoints.h.
|
protected |
Definition at line 172 of file ScalarFieldCriticalPoints.h.
|
protected |
Definition at line 173 of file ScalarFieldCriticalPoints.h.
|
protected |
Definition at line 175 of file ScalarFieldCriticalPoints.h.
|
protected |
Definition at line 164 of file ScalarFieldCriticalPoints.h.
|
protected |
Definition at line 162 of file ScalarFieldCriticalPoints.h.