TTK
|
TTK VTK-filter for the computation of Reeb Graphs. More...
#include <ttkReebGraph.h>
Public Types | |
typedef ttkAlgorithm | Superclass |
![]() | |
typedef vtkAlgorithm | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
virtual void | SetForceInputOffsetScalarField (bool) |
virtual bool | GetForceInputOffsetScalarField () |
int | getSkeletonNodes (const ttk::ftr::Graph &graph, vtkUnstructuredGrid *outputSkeletonNodes) |
int | addDirectSkeletonArc (const ttk::ftr::Graph &graph, const ttk::ftr::idSuperArc arcId, vtkPoints *points, vtkUnstructuredGrid *skeletonArcs, ttk::ftr::ArcData &arcData) |
int | addSampledSkeletonArc (const ttk::ftr::Graph &graph, const ttk::ftr::idSuperArc arcId, vtkPoints *points, vtkUnstructuredGrid *skeletonArcs, ttk::ftr::ArcData &arcData) |
int | addCompleteSkeletonArc (const ttk::ftr::Graph &graph, const ttk::ftr::idSuperArc arcId, vtkPoints *points, vtkUnstructuredGrid *skeletonArcs, ttk::ftr::ArcData &arcData) |
int | getSkeletonArcs (const ttk::ftr::Graph &graph, vtkUnstructuredGrid *outputSkeletonArcs) |
int | getSegmentation (const ttk::ftr::Graph &graph, vtkDataSet *outputSegmentation) |
template<typename VTK_TT , typename TTK_TT > | |
int | dispatch (ttk::ftr::Graph &graph) |
void | SetSingleSweep (const bool ss) |
control whether the computation should start from min and max (default) or use a single sweep starting only from the min (may be more robust) | |
bool | GetSingleSweep () const |
void | SetWithSegmentation (const bool segm) |
control if the output should contains the segmentation information | |
bool | GetWithSegmentation () const |
void | SetWithNormalize (const bool norm) |
if set to true, a post processing pass will be used to enforce consistent node ids between executions | |
bool | GetWithNormalize () const |
void | SetSampling (int lvl) |
control the sampling level of the superarcs | |
int | GetSuperArcSamplingLevel () const |
![]() | |
void | UpdateThreadNumber () |
void | SetThreadNumber (int threadNumber) |
void | SetUseAllCores (bool useAllCores) |
void | SetDebugLevel (int debugLevel) |
void | SetCompactTriangulationCacheSize (float cacheSize) |
vtkDataArray * | GetOptionalArray (const bool &enforceArrayIndex, const int &arrayIndex, const std::string &arrayName, vtkDataSet *const inputData, const int &inputPort=0) |
vtkDataArray * | GetOrderArray (vtkDataSet *const inputData, const int scalarArrayIdx, ttk::Triangulation *triangulation, const bool getGlobalOrder=false, const int orderArrayIdx=0, const bool enforceOrderArrayIdx=false) |
vtkDataArray * | checkForGlobalAndComputeOrderArray (vtkDataSet *const inputData, vtkDataArray *scalarArray, const int scalarArrayIdx, const bool getGlobalOrder, vtkDataArray *orderArray, ttk::Triangulation *triangulation, const bool enforceOrderArrayIdx) |
vtkDataArray * | ComputeOrderArray (vtkDataSet *const inputData, vtkDataArray *scalarArray, const int scalarArrayIdx, const bool getGlobalOrder, vtkDataArray *oldOrderArray, ttk::Triangulation *triangulation) |
ttk::SimplexId * | GetIdentifierArrayPtr (const bool &enforceArrayIndex, const int &arrayIndex, const std::string &arrayName, vtkDataSet *const inputData, std::vector< ttk::SimplexId > &spareStorage, const int inputPort=0, const bool printErr=true) |
ttk::Triangulation * | GetTriangulation (vtkDataSet *dataSet) |
int | ProcessRequest (vtkInformation *request, vtkInformationVector **inputVectors, vtkInformationVector *outputVector) override |
vtkDataSet * | GetOutput () |
vtkDataSet * | GetOutput (int) |
void | SetInputData (vtkDataSet *) |
void | SetInputData (int, vtkDataSet *) |
void | AddInputData (vtkDataSet *) |
void | AddInputData (int, vtkDataSet *) |
template<typename inputType > | |
int | checkEmptyMPIInput (inputType *input) |
This method tests whether the input is a nullptr. If the computation is being done on multiple processes, it is possible that the domain of one process or more is empty, but not others, therefore in that particular case the rest of the filter will not be computed but an error message will not be sent. | |
![]() | |
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) |
Static Public Member Functions | |
static ttkReebGraph * | New () |
static int | IsTypeOf (const char *type) |
static ttkReebGraph * | SafeDownCast (vtkObject *o) |
![]() | |
static ttkAlgorithm * | New () |
static int | IsTypeOf (const char *type) |
static ttkAlgorithm * | SafeDownCast (vtkObject *o) |
static std::string | GetOrderArrayName (vtkDataArray *const array) |
static vtkInformationIntegerKey * | SAME_DATA_TYPE_AS_INPUT_PORT () |
Protected Member Functions | |
ttkReebGraph () | |
void | identify (vtkDataSet *ds) const |
int | FillInputPortInformation (int port, vtkInformation *info) override |
int | FillOutputPortInformation (int port, vtkInformation *info) override |
int | RequestData (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override |
![]() | |
ttkAlgorithm () | |
~ttkAlgorithm () override | |
void | MPIGhostPipelinePreconditioning (vtkDataSet *input) |
void | MPIPipelinePreconditioning (vtkDataSet *input, std::vector< int > &neighbors, std::map< int, int > &neighToId, ttk::Triangulation *triangulation=nullptr) |
bool | checkGlobalIdValidity (ttk::LongSimplexId *globalIds, ttk::SimplexId simplexNumber, unsigned char *ghost, int *rankArray) |
int | GenerateGlobalIds (vtkDataSet *input, std::unordered_map< ttk::SimplexId, ttk::SimplexId > &vertGtoL, std::vector< int > &neighborRanks, std::map< int, int > &neighborsToId) |
void | MPITriangulationPreconditioning (ttk::Triangulation *triangulation, vtkDataSet *input) |
virtual int | RequestDataObject (vtkInformation *request, vtkInformationVector **inputVectors, vtkInformationVector *outputVector) |
virtual int | RequestInformation (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestUpdateTime (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestUpdateTimeDependentInformation (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestUpdateExtent (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestDataNotGenerated (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
virtual int | RequestData (vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector)) |
int | FillInputPortInformation (int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override |
int | FillOutputPortInformation (int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override |
![]() | |
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) |
Additional Inherited Members | |
![]() | |
float | CompactTriangulationCacheSize {0.2f} |
![]() | |
int | debugLevel_ |
std::string | debugMsgPrefix_ |
std::string | debugMsgNamePrefix_ |
![]() | |
bool | lastObject_ |
int | threadNumber_ |
Wrapper * | wrapper_ |
![]() | |
static COMMON_EXPORTS debug::LineMode | lastLineMode = ttk::debug::LineMode::NEW |
TTK VTK-filter for the computation of Reeb Graphs.
The computation of the Reeb graph done by this package is done in parallel if TTK_ENABLE_OPENMP is set to ON, using a task based approach described in the article mention below.
Input | Input scalar field, either 2D or 3D, regular grid or triangulation (vtkDataSet) |
SingleSweep | control if the computation should start from both minima and maxima simultaneously. If you encounter troubled with FTR, you should try to use the single sweep. It is slower but may be more robust. |
Segmentation | control wethear or not the output should be augmented with the segmentation. |
SuperArcSamplingLevel | control the number of subdivision of each superarc. Intermediate point will be located on the barycenter of the corresponding portion of vertex. |
Output | the output of this filter is composed of:
|
This filter can be used as any other VTK filter (for instance, by using the sequence of calls SetInputData(), Update(), GetOutput()).
Related publication
"Task-based Augmented Reeb Graphs with Dynamic ST-Trees"
Charles Gueunet, Pierre Fortin, Julien Jomier, Julien Tierny
EGPGV19: Eurographics Symposium on Parallel Graphics and Visualization
Online examples:
Definition at line 63 of file ttkReebGraph.h.
typedef ttkAlgorithm ttkReebGraph::Superclass |
Definition at line 66 of file ttkReebGraph.h.
|
protected |
Definition at line 14 of file ttkReebGraph.cpp.
int ttkReebGraph::addCompleteSkeletonArc | ( | const ttk::ftr::Graph & | graph, |
const ttk::ftr::idSuperArc | arcId, | ||
vtkPoints * | points, | ||
vtkUnstructuredGrid * | skeletonArcs, | ||
ttk::ftr::ArcData & | arcData | ||
) |
Definition at line 39 of file ttkReebGraph.cpp.
int ttkReebGraph::addDirectSkeletonArc | ( | const ttk::ftr::Graph & | graph, |
const ttk::ftr::idSuperArc | arcId, | ||
vtkPoints * | points, | ||
vtkUnstructuredGrid * | skeletonArcs, | ||
ttk::ftr::ArcData & | arcData | ||
) |
Definition at line 111 of file ttkReebGraph.cpp.
int ttkReebGraph::addSampledSkeletonArc | ( | const ttk::ftr::Graph & | graph, |
const ttk::ftr::idSuperArc | arcId, | ||
vtkPoints * | points, | ||
vtkUnstructuredGrid * | skeletonArcs, | ||
ttk::ftr::ArcData & | arcData | ||
) |
Definition at line 158 of file ttkReebGraph.cpp.
int ttkReebGraph::dispatch | ( | ttk::ftr::Graph & | graph | ) |
Definition at line 262 of file ttkReebGraph.cpp.
|
overrideprotected |
Definition at line 20 of file ttkReebGraph.cpp.
|
overrideprotected |
Definition at line 28 of file ttkReebGraph.cpp.
|
virtual |
Reimplemented from ttkAlgorithm.
|
virtual |
int ttkReebGraph::getSegmentation | ( | const ttk::ftr::Graph & | graph, |
vtkDataSet * | outputSegmentation | ||
) |
Definition at line 359 of file ttkReebGraph.cpp.
|
inline |
Definition at line 79 of file ttkReebGraph.h.
int ttkReebGraph::getSkeletonArcs | ( | const ttk::ftr::Graph & | graph, |
vtkUnstructuredGrid * | outputSkeletonArcs | ||
) |
Definition at line 376 of file ttkReebGraph.cpp.
int ttkReebGraph::getSkeletonNodes | ( | const ttk::ftr::Graph & | graph, |
vtkUnstructuredGrid * | outputSkeletonNodes | ||
) |
Definition at line 422 of file ttkReebGraph.cpp.
|
inline |
Definition at line 113 of file ttkReebGraph.h.
|
inline |
Definition at line 102 of file ttkReebGraph.h.
|
inline |
Definition at line 90 of file ttkReebGraph.h.
|
protected |
Definition at line 451 of file ttkReebGraph.cpp.
|
virtual |
Reimplemented from ttkAlgorithm.
|
static |
|
static |
|
overrideprotected |
Definition at line 284 of file ttkReebGraph.cpp.
|
static |
|
virtual |
|
inline |
control the sampling level of the superarcs
Definition at line 109 of file ttkReebGraph.h.
|
inline |
control whether the computation should start from min and max (default) or use a single sweep starting only from the min (may be more robust)
Definition at line 75 of file ttkReebGraph.h.
|
inline |
if set to true, a post processing pass will be used to enforce consistent node ids between executions
Definition at line 98 of file ttkReebGraph.h.
|
inline |
control if the output should contains the segmentation information
Definition at line 86 of file ttkReebGraph.h.