TTK VTK-filter that computes a persistence-based simplification of a scalar field.
More...
|
virtual void | SetPersistenceThreshold (double) |
|
virtual double | GetPersistenceThreshold () |
|
virtual void | SetThresholdIsAbsolute (bool) |
|
virtual bool | GetThresholdIsAbsolute () |
|
virtual void | SetComputePerturbation (bool) |
|
virtual bool | GetComputePerturbation () |
|
virtual void | SetPairType (int _arg) |
|
virtual void | SetPairType (PAIR_TYPE) |
|
virtual PAIR_TYPE | GetPairType () const |
|
virtual const char * | GetClassName () |
|
virtual int | IsA (const char *type) |
|
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) |
|
|
| ttkTopologicalSimplificationByPersistence () |
|
| ~ttkTopologicalSimplificationByPersistence () override |
|
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) |
|
| LocalizedTopologicalSimplification () |
|
| ~LocalizedTopologicalSimplification () override=default |
|
int | preconditionTriangulation (ttk::AbstractTriangulation *triangulation) const |
|
template<typename IT > |
int | allocateMemory (std::vector< IT > &segmentation, std::vector< IT > &queueMask, std::vector< IT > &localOrder, std::vector< Propagation< IT > * > &propagationMask, std::vector< std::tuple< IT, IT, IT > > &sortedIndices, const IT &nVertices) const |
|
template<typename IT > |
int | initializeMemory (IT *segmentation, IT *queueMask, IT *localOrder, Propagation< IT > **propagationMask, const IT &nVertices) const |
|
template<typename IT , class TT > |
int | initializePropagations (std::vector< Propagation< IT > > &propagations, IT *authorizationMask, IT *maximaBuffer, const IT *authorizedExtremaIndices, const IT &nAuthorizedExtremaIndices, const IT *order, const TT *triangulation) const |
|
template<typename IT , typename TT > |
int | computeSimplePropagation (Propagation< IT > &propagation, Propagation< IT > **propagationMask, IT *segmentation, IT *queueMask, const TT *triangulation, const IT *order) const |
|
template<typename IT , typename DT , typename TT > |
int | computePersistenceSensitivePropagation (Propagation< IT > &propagation, Propagation< IT > **propagationMask, IT *segmentation, IT *queueMask, const TT *triangulation, const IT *order, const DT *scalars, const DT persistenceThreshold) const |
|
template<typename IT , class TT > |
int | computeSimplePropagations (std::vector< Propagation< IT > > &propagations, Propagation< IT > **propagationMask, IT *segmentation, IT *queueMask, const TT *triangulation, const IT *inputOrder) const |
|
template<typename IT , typename DT , class TT > |
int | computePersistenceSensitivePropagations (std::vector< Propagation< IT > > &propagations, Propagation< IT > **propagationMask, IT *segmentation, IT *queueMask, const TT *triangulation, const IT *order, const DT *scalars, const DT persistenceThreshold) const |
|
template<typename IT > |
int | finalizePropagations (std::vector< Propagation< IT > * > &parentPropagations, std::vector< Propagation< IT > > &propagations, const IT nVertices) const |
|
template<typename IT , class TT > |
int | computeSegment (IT *segmentation, Propagation< IT > *propagation, const IT *order, const TT *triangulation) const |
|
template<typename IT , class TT > |
int | computeSegments (IT *segmentation, std::vector< Propagation< IT > * > &propagations, const IT *order, const TT *triangulation) const |
| This method computes the segments of a given list of propagations.
|
|
template<typename IT , class TT > |
int | computeLocalOrderOfSegmentIteration (IT *localOrder, IT *localVertexSequence, const bool &performSuperlevelSetPropagation, const TT *triangulation, const IT *segmentation, const IT &segmentId, const std::vector< IT > &boundary, const std::vector< IT > &segment, const IT &saddleIdx) const |
|
template<typename IT , class TT > |
int | computeLocalOrderOfSegment (IT *localOrder, const Propagation< IT > *propagation, const TT *triangulation, const IT *segmentation, const IT *inputOrder) const |
|
template<typename IT , class TT > |
int | computeLocalOrderOfSegments (IT *localOrder, const TT *triangulation, const IT *segmentation, const IT *inputOrder, const std::vector< Propagation< IT > * > &propagations) const |
|
template<typename IT > |
int | flattenOrder (IT *outputOrder, const std::vector< Propagation< IT > * > &parentPropagations) const |
|
template<typename DT , typename IT > |
int | flattenScalars (DT *scalars, const std::vector< Propagation< IT > > &propagationsA, const std::vector< Propagation< IT > > &propagationsB={}) const |
|
template<typename IT > |
int | computeGlobalOrder (IT *order, const IT *localOrder, std::vector< std::tuple< IT, IT, IT > > &sortedIndices) const |
|
template<typename DT , typename IT > |
int | computeNumericalPerturbation (DT *scalars, const std::vector< std::tuple< IT, IT, IT > > &sortedIndices, const bool descending=false) const |
|
template<typename IT , class TT > |
int | detectAndRemoveUnauthorizedMaxima (IT *order, IT *segmentation, IT *queueMask, IT *localOrder, Propagation< IT > **propagationMask, std::vector< Propagation< IT > > &propagations, std::vector< std::tuple< IT, IT, IT > > &sortedIndices, const TT *triangulation, const IT *authorizedExtremaIndices, const IT &nAuthorizedExtremaIndices) const |
|
template<typename IT , typename DT , class TT > |
int | detectAndRemoveNonPersistentMaxima (DT *scalars, IT *order, IT *segmentation, IT *queueMask, IT *localOrder, Propagation< IT > **propagationMask, std::vector< Propagation< IT > > &propagations, std::vector< std::tuple< IT, IT, IT > > &sortedIndices, const TT *triangulation, const DT persistenceThreshold) const |
|
template<typename IT > |
int | invertOrder (IT *outputOrder, const IT &nVertices) const |
|
template<typename DT , typename IT , class TT > |
int | removeUnauthorizedExtrema (DT *scalars, IT *order, const TT *triangulation, const IT *authorizedExtremaIndices, const IT &nAuthorizedExtremaIndices, const bool &computePerturbation) const |
|
template<typename DT , typename IT , class TT > |
int | removeNonPersistentExtrema (DT *scalars, IT *order, const TT *triangulation, const DT persistenceThreshold, const bool &computePerturbation, const PAIR_TYPE &pairType=PAIR_TYPE::EXTREMUM_SADDLE) const |
|
TTK VTK-filter that computes a persistence-based simplification of a scalar field.
Related publications
"Generalized Topological Simplification of Scalar Fields on Surfaces"
Julien Tierny, Valerio Pascucci
Proc. of IEEE VIS 2012.
IEEE Transactions on Visualization and Computer Graphics, 2012. "Localized Topological Simplification of Scalar Data"
Jonas Lukasczyk, Christoph Garth, Ross Maciejewski, Julien Tierny
Proc. of IEEE VIS 2020.
IEEE Transactions on Visualization and Computer Graphics
- Parameters
-
Input | vtkDataSet. |
Output | vtkDataSet. |
This filter can be used as any other VTK filter (for instance, by using the sequence of calls SetInputData(), Update(), GetOutputDataObject()).
The input data array needs to be specified via the standard VTK call vtkAlgorithm::SetInputArrayToProcess() with the following parameters:
- Parameters
-
idx | 0 (FIXED: the first array the algorithm requires) |
port | 0 (FIXED: first port) |
connection | 0 (FIXED: first connection) |
fieldAssociation | 0 (FIXED: point data) |
arrayName | (DYNAMIC: string identifier of the input array) |
See the related ParaView example state files for usage examples within a VTK pipeline.
- See also
- ttkTopologicalSimplification
-
ttk::LocalizedTopologicalSimplification
-
ttkAlgorithm
Online examples:
- Author
- Jonas Lukasczyk jl@jl.nosp@m.uk.d.nosp@m.e
- Date
- 03.06.2021
Given an input scalar field and a persistence threshold (either as an absolute value or a fraction of the scalar range), this filter modifies the scalar field such that it no longer exhibits persistence pairs below the given threshold. All other pairs are unaffected. To this end the filter uses the persistence-sensitive specialization of localized topological simplification (PLTS). Note that this filter will also compute an unambiguous global vertex order that can be used in subsequent topological data analysis.
Definition at line 65 of file ttkTopologicalSimplificationByPersistence.h.