TTK processing package for the computation of mandatory critical points in uncertain scalar data.
More...
|
| MandatoryCriticalPoints () |
|
int | buildJoinTreePlanarLayout () |
|
int | buildSplitTreePlanarLayout () |
|
template<typename triangulationType > |
int | buildSubTrees (const triangulationType &triangulation) |
|
template<class dataType , typename triangulationType > |
int | execute (const triangulationType &triangulation) |
|
template<class dataType > |
int | fillVertexScalars (void *upperData, void *lowerData) |
|
int | findCommonAncestorNodeId (const SubLevelSetTree *tree, const int &vertexId0, const int &vertexId1) const |
|
void | flush () |
|
double | getGlobalMaximum () const |
|
double | getGlobalMinimum () const |
|
const Graph * | getJoinTreeGraph () |
|
const std::vector< double > * | getJoinTreeXLayout () |
|
const std::vector< double > * | getJoinTreeYLayout () |
|
const Graph * | getSplitTreeGraph () |
|
const std::vector< double > * | getSplitTreeXLayout () |
|
const std::vector< double > * | getSplitTreeYLayout () |
|
const std::vector< int > * | getMdtJoinTreePointComponentId () const |
|
const std::vector< int > * | getMdtSplitTreePointComponentId () const |
|
const std::vector< PointType > * | getMdtJoinTreePointType () const |
|
const std::vector< PointType > * | getMdtSplitTreePointType () const |
|
const std::vector< double > * | getMdtJoinTreePointLowInterval () const |
|
const std::vector< double > * | getMdtSplitTreePointLowInterval () const |
|
const std::vector< double > * | getMdtJoinTreePointUpInterval () const |
|
const std::vector< double > * | getMdtSplitTreePointUpInterval () const |
|
const std::vector< int > * | getMdtJoinTreeEdgeSwitchable () |
|
const std::vector< int > * | getMdtSplitTreeEdgeSwitchable () |
|
bool | areSaddlesSwitchables (const TreeType treeType, const int &firstId, const int &secondId) const |
|
template<typename triangulationType > |
int | computeAllJoinSaddle (const triangulationType &triangulation) |
|
int | computeAllMaxima () |
|
int | computeAllMinima () |
|
template<typename triangulationType > |
int | computeAllSplitSaddle (const triangulationType &triangulation) |
|
template<typename triangulationType > |
int | computeJoinSaddle (const int &id, const triangulationType &triangulation, const bool &reset=true) |
|
int | computeMaximum (const int &id, const bool &reset=true, const bool &ttkNotUsed(parallel)=true) |
|
int | computeMinimum (const int &id, const bool &reset=true, const bool &ttkNotUsed(parallel)=true) |
|
template<typename triangulationType > |
int | computeSplitSaddle (const int &id, const triangulationType &triangulation, const bool &reset=true) |
|
int | setDebugLevel (const int &debugLevel) override |
|
int | setLowerBoundFieldPointer (void *data) |
|
int | setOutputJoinSaddleDataPointer (void *data) |
|
int | setOutputMaximumDataPointer (void *data) |
|
int | setOutputMinimumDataPointer (void *data) |
|
int | setOutputSplitSaddleDataPointer (void *data) |
|
int | setUpperBoundFieldPointer (void *data) |
|
int | setSimplificationThreshold (double normalizedThreshold) |
|
int | setSoSoffsets (int *offsets=nullptr) |
|
void | preconditionTriangulation (AbstractTriangulation *const triangulation) |
|
int | setVertexNumber (const int &vertexNumber) |
|
int | setVertexPosition (const int &i, const double point[3]) |
|
int | simplifyJoinTree () |
|
int | simplifySplitTree () |
|
| Debug () |
|
| ~Debug () override |
|
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) |
|
|
int | buildMandatoryTree (const TreeType treeType, Graph &mdtTree, std::vector< int > &mdtTreePointComponentId, std::vector< PointType > &mdtTreePointType, std::vector< double > &mdtTreePointLowInterval, std::vector< double > &mdtTreePointUpInterval, std::vector< int > &mdtTreeEdgeSwitchable, const std::vector< int > &mdtExtremumParentSaddle, const std::vector< int > &mdtSaddleParentSaddle, const std::vector< bool > &isExtremumSimplified, const std::vector< bool > &isSaddleSimplified, const std::vector< std::pair< double, double > > &extremumInterval, const std::vector< std::pair< int, int > > &mandatorySaddleVertices, const int extremaNumber, const int saddleNumber, const PointType extremumType, const PointType saddleType, const PointType otherExtremumType, const double globalOtherExtremumValue) const |
|
int | buildPairs (const TreeType treeType, const std::vector< std::pair< int, int > > &saddleList, const std::vector< std::vector< int > > &mergedExtrema, const std::vector< std::pair< double, double > > &extremumInterval, SubLevelSetTree &lowerTree, SubLevelSetTree &upperTree, std::vector< std::pair< std::pair< int, int >, double > > &extremaSaddlePair) const |
| TODO : Replace SubLevelSetTrees by scalar fields for vertex value.
|
|
int | computePlanarLayout (const TreeType &treeType, const Graph &mdtTree, const std::vector< PointType > &mdtTreePointType, const std::vector< double > &mdtTreePointLowInterval, const std::vector< double > &mdtTreePointUpInterval, std::vector< double > &xCoord, std::vector< double > &yCoord) const |
|
int | computeExtremumComponent (const PointType &pointType, const SubLevelSetTree &tree, const int seedVertexId, const std::vector< double > &vertexScalars, std::vector< int > &componentVertexList) const |
|
template<typename triangulationType > |
int | computeSaddleComponent (const int componentId, const PointType &pointType, const std::vector< std::pair< int, int > > &mandatorySaddleVertex, const std::vector< double > &lowVertexScalars, const std::vector< double > &upVertexInterval, std::vector< int > &componentVertexList, const triangulationType &triangulation) const |
|
int | enumerateMandatoryExtrema (const PointType pointType, SubLevelSetTree &firstTree, SubLevelSetTree &secondTree, std::vector< int > &mandatoryExtremum, std::vector< std::pair< double, double > > &criticalInterval) const |
|
int | enumerateMandatorySaddles (const PointType pointType, SubLevelSetTree &lowerTree, SubLevelSetTree &upperTree, const std::vector< int > &mandatoryExtremumVertex, std::vector< std::pair< int, int > > &mandatorySaddleVertex, std::vector< std::vector< int > > &mandatoryMergedExtrema) |
| TODO : Multiplicity.
|
|
int | getSubTreeRootSuperArcId (const SubLevelSetTree *tree, const int &startingSuperArcId, const double &targetValue) const |
|
void | getSubTreeSuperArcIds (const SubLevelSetTree *tree, const int &rootSuperArcId, std::vector< int > &subTreeSuperArcId) const |
|
int | getVertexSuperArcId (const int &vertexId, const SubLevelSetTree *tree) const |
|
int | simplify (const double normalizedThreshold, const TreeType treeType, const std::vector< std::pair< std::pair< int, int >, double > > &extremaSaddlePair, const std::vector< std::vector< int > > &mergedExtrema, const int numberOfExtrema, std::vector< bool > &extremumSimplified, std::vector< bool > &saddleSimplified, std::vector< int > &extremumParentSaddle, std::vector< int > &saddleParentSaddle) const |
|
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) |
|
|
void * | inputUpperBoundField_ {} |
| Void pointer to the input upper bound scalar field.
|
|
void * | inputLowerBoundField_ {} |
| Void pointer to the input lower bound scalar field.
|
|
int * | outputMandatoryMinimum_ {} |
| Void pointer to the output mandatory minima components.
|
|
int * | outputMandatoryJoinSaddle_ {} |
| Void pointer to the output mandatory join saddles components.
|
|
int * | outputMandatorySplitSaddle_ {} |
| Void pointer to the output mandatory split saddles components.
|
|
int * | outputMandatoryMaximum_ {} |
| Void pointer to the output mandatory maxima components.
|
|
int | vertexNumber_ {} |
| Number of vertices.
|
|
std::vector< std::vector< double > > | vertexPositions_ {} |
| Position (x,y,z) of each vertex.
|
|
std::vector< int > | vertexSoSoffsets_ {} |
| Offsets.
|
|
std::vector< double > | upperVertexScalars_ {} |
| Copy of the input upper scalar field converted in double.
|
|
std::vector< double > | lowerVertexScalars_ {} |
| Copy of the input lower scalar field converted in double.
|
|
SubLevelSetTree | upperJoinTree_ {} |
| Join tree of the upper bound scalar field.
|
|
SubLevelSetTree | lowerJoinTree_ {} |
| Join tree of the lower bound scalar field.
|
|
SubLevelSetTree | upperSplitTree_ {} |
| Split tree of the upper bound scalar field.
|
|
SubLevelSetTree | lowerSplitTree_ {} |
| Split tree of the lower bound scalar field.
|
|
std::vector< int > | upperMinimumList_ {} |
| List of vertex id of the minima in the upper bound scalar field.
|
|
std::vector< int > | lowerMinimumList_ {} |
| List of vertex id of the minima in the lower bound scalar field.
|
|
std::vector< int > | upperMaximumList_ {} |
| List of vertex id of the maxima in the upper bound scalar field.
|
|
std::vector< int > | lowerMaximumList_ {} |
| List of vertex id of the maxima in the lower bound scalar field.
|
|
std::vector< int > | mandatoryMinimumVertex_ {} |
| Mandatory vertex for each minimum component.
|
|
std::vector< int > | mandatoryMaximumVertex_ {} |
| Mandatory vertex for each maximum component.
|
|
std::vector< std::pair< double, double > > | mandatoryMinimumInterval_ {} |
| Critical interval for each minimum component.
|
|
std::vector< std::pair< double, double > > | mandatoryMaximumInterval_ {} |
| Critical interval for each maximum component.
|
|
std::vector< std::pair< int, int > > | mandatoryJoinSaddleVertex_ {} |
| Pair of mandatory vertices for each join saddle component.
|
|
std::vector< std::pair< int, int > > | mandatorySplitSaddleVertex_ {} |
| Pair of mandatory vertices for each split saddle component.
|
|
std::vector< std::vector< int > > | mergedMaximaId_ {} |
|
std::vector< std::vector< int > > | mergedMinimaId_ {} |
|
std::vector< std::pair< std::pair< int, int >, double > > | mdtMinJoinSaddlePair_ {} |
| Pairs ( (M,S), d(M,S) ) Of minima and join saddles.
|
|
std::vector< std::pair< std::pair< int, int >, double > > | mdtMaxSplitSaddlePair_ {} |
| Pairs ( (M,S), d(M,S) ) Of maxima and split saddles.
|
|
double | normalizedThreshold_ {0.0} |
| Value of the simplification threshold.
|
|
std::vector< bool > | isMdtMinimumSimplified_ |
|
std::vector< bool > | isMdtJoinSaddleSimplified_ {} |
|
std::vector< bool > | isMdtSplitSaddleSimplified_ {} |
|
std::vector< bool > | isMdtMaximumSimplified_ {} |
|
std::vector< int > | mdtMinimumParentSaddleId_ {} |
|
std::vector< int > | mdtJoinSaddleParentSaddleId_ {} |
|
std::vector< int > | mdtSplitSaddleParentSaddleId_ {} |
|
std::vector< int > | mdtMaximumParentSaddleId_ {} |
|
Graph | mdtJoinTree_ {} |
|
Graph | mdtSplitTree_ {} |
|
std::vector< int > | mdtJoinTreePointComponentId_ {} |
|
std::vector< int > | mdtSplitTreePointComponentId_ {} |
|
std::vector< PointType > | mdtJoinTreePointType_ {} |
|
std::vector< PointType > | mdtSplitTreePointType_ {} |
|
std::vector< double > | mdtJoinTreePointLowInterval_ {} |
|
std::vector< double > | mdtSplitTreePointLowInterval_ {} |
|
std::vector< double > | mdtJoinTreePointUpInterval_ {} |
|
std::vector< double > | mdtSplitTreePointUpInterval_ {} |
|
std::vector< int > | mdtJoinTreeEdgeSwitchable_ {} |
|
std::vector< int > | mdtSplitTreeEdgeSwitchable_ {} |
|
std::vector< double > | mdtJoinTreePointXCoord_ {} |
|
std::vector< double > | mdtSplitTreePointXCoord_ {} |
|
std::vector< double > | mdtJoinTreePointYCoord_ {} |
|
std::vector< double > | mdtSplitTreePointYCoord_ {} |
|
double | globalMinimumValue_ {} |
|
double | globalMaximumValue_ {} |
|
std::vector< std::vector< int > > | mandatoryMaximumComponentVertices_ {} |
| List of the vertices forming each of the mandatory maximum components.
|
|
std::vector< std::vector< int > > | mandatoryMinimumComponentVertices_ {} |
|
std::vector< std::vector< int > > | mandatoryJoinSaddleComponentVertices_ {} |
|
std::vector< std::vector< int > > | mandatorySplitSaddleComponentVertices_ {} |
|
int | debugLevel_ |
|
std::string | debugMsgPrefix_ |
|
std::string | debugMsgNamePrefix_ |
|
bool | lastObject_ |
|
int | threadNumber_ |
|
Wrapper * | wrapper_ |
|
TTK processing package for the computation of mandatory critical points in uncertain scalar data.
- Author
- Michael Michaux micha.nosp@m.uxmi.nosp@m.chael.nosp@m.89@g.nosp@m.mail..nosp@m.com
-
Julien Tierny julie.nosp@m.n.ti.nosp@m.erny@.nosp@m.lip6.nosp@m..fr
- Date
- August 2016.
This package computes the mandatory critical points of uncertain scalar fields defined on PL (nD) manifolds. The input uncertain data is represented by reliable bound fields for each vertex.
- Warning
- SimplexId (large large datasets). This class builds and runs with the new triangulation API (SimplexId) but may need adjustments when addressing more than integers (large datasets).
Related publication
"Mandatory Critical Points of 2D Uncertain Scalar Fields"
David Guenther, Joseph Salmon, Julien Tierny
Proc. of EuroVis 2014.
Computer Graphics Forum, 2014.
- See also
- ttkMandatoryCriticalPoints.cpp for a usage example.
Online examples:
Definition at line 147 of file MandatoryCriticalPoints.h.