TTK
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ttkAlgorithm Class Reference

Baseclass of all VTK filters that wrap ttk modules. More...

#include <ttkAlgorithm.h>

Inheritance diagram for ttkAlgorithm:
ttk::Debug ttk::BaseClass ttkArrayEditor ttkArrayPreconditioning ttkBarycentricSubdivision ttkBlockAggregator ttkBottleneckDistance ttkCinemaDarkroomCamera ttkCinemaDarkroomShader ttkCinemaImaging ttkCinemaProductReader ttkCinemaQuery ttkCinemaReader ttkCinemaWriter ttkClusteringMetrics ttkComponentSize ttkConnectedComponents ttkContinuousScatterPlot ttkContourAroundPoint ttkContourForests ttkContourTree ttkContourTreeAlignment ttkDataSetInterpolator ttkDataSetToTable ttkDepthImageBasedGeometryApproximation ttkDimensionReduction ttkDiscreteGradient ttkDistanceField ttkDistanceMatrixDistortion ttkEigenField ttkEndFor ttkExtract ttkFiber ttkFiberSurface ttkFlattenMultiBlock ttkGaussianPointCloud ttkGeometrySmoother ttkGridLayout ttkHarmonicField ttkHelloWorld ttkIcosphere ttkIdentifierRandomizer ttkIdentifiers ttkIdentifyByScalarField ttkImportEmbeddingFromTable ttkIntegralLines ttkJacobiSet ttkLDistance ttkLDistanceMatrix ttkMandatoryCriticalPoints ttkManifoldCheck ttkMarchingTetrahedra ttkMatrixToHeatMap ttkMergeBlockTables ttkMergeTree ttkMergeTreeAutoencoder ttkMergeTreeAutoencoderDecoding ttkMergeTreeClustering ttkMergeTreeDistanceMatrix ttkMergeTreePrincipalGeodesics ttkMergeTreePrincipalGeodesicsDecoding ttkMergeTreeTemporalReduction ttkMergeTreeTemporalReductionDecoding ttkMeshGraph ttkMeshSubdivision ttkMetricDistortion ttkMorphologicalOperators ttkMorseSmaleComplex ttkMorseSmaleQuadrangulation ttkPathCompression ttkPeriodicGhostsGeneration ttkPersistenceCurve ttkPersistenceDiagram ttkPersistenceDiagramApproximation ttkPersistenceDiagramClustering ttkPersistenceDiagramDistanceMatrix ttkPersistentGenerators ttkPlanarGraphLayout ttkPointDataConverter ttkPointDataSelector ttkPointMerger ttkPointSetToCurve ttkPointSetToSurface ttkProjectionFromField ttkProjectionFromTable ttkQuadrangulationSubdivision ttkRangePolygon ttkReebGraph ttkReebSpace ttkRipsComplex ttkRipsPersistenceDiagram ttkScalarFieldCriticalPoints ttkScalarFieldNormalizer ttkScalarFieldSmoother ttkSignedDistanceField ttkSphereFromPoint ttkStableManifoldPersistence ttkStringArrayConverter ttkSurfaceGeometrySmoother ttkTableDataSelector ttkTableDistanceMatrix ttkTextureMapFromField ttkTopologicalCompression ttkTopologicalCompressionReader ttkTopologicalCompressionWriter ttkTopologicalSimplification ttkTopologicalSimplificationByPersistence ttkTrackingFromFields ttkTrackingFromOverlap ttkTrackingFromPersistenceDiagrams ttkTriangulationManager ttkTriangulationReader ttkTriangulationRequest ttkTriangulationWriter ttkUncertainDataEstimator ttkWebSocketIO

Public Types

typedef vtkAlgorithm Superclass
 

Public Member Functions

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::SimplexIdGetIdentifierArrayPtr (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::TriangulationGetTriangulation (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.
 
- 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)
 

Static Public Member Functions

static ttkAlgorithmNew ()
 
static int IsTypeOf (const char *type)
 
static ttkAlgorithmSafeDownCast (vtkObject *o)
 
static std::string GetOrderArrayName (vtkDataArray *const array)
 
static vtkInformationIntegerKey * SAME_DATA_TYPE_AS_INPUT_PORT ()
 

Protected Member Functions

 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
 
- 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

float CompactTriangulationCacheSize {0.2f}
 
- 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

Baseclass of all VTK filters that wrap ttk modules.

Author
Jonas Lukasczyk jl@jl.nosp@m.uk.d.nosp@m.e
Date
01.09.2019.

This is an abstract vtkAlgorithm that provides standardized input/output management for VTK wrappers of ttk filters. The class also provides a static method to retrieve a ttk::Triangulation of a vtkDataSet.

Definition at line 33 of file ttkAlgorithm.h.

Member Typedef Documentation

◆ Superclass

typedef vtkAlgorithm ttkAlgorithm::Superclass

Definition at line 41 of file ttkAlgorithm.h.

Constructor & Destructor Documentation

◆ ttkAlgorithm()

ttkAlgorithm::ttkAlgorithm ( )
protecteddefault

◆ ~ttkAlgorithm()

ttkAlgorithm::~ttkAlgorithm ( )
overrideprotecteddefault

Member Function Documentation

◆ AddInputData() [1/2]

void ttkAlgorithm::AddInputData ( int  index,
vtkDataSet *  input 
)

Definition at line 447 of file ttkAlgorithm.cpp.

◆ AddInputData() [2/2]

void ttkAlgorithm::AddInputData ( vtkDataSet *  input)

Assign a data object as input. Note that this method does not establish a pipeline connection. Use AddInputConnection() to setup a pipeline connection.

Definition at line 443 of file ttkAlgorithm.cpp.

◆ checkEmptyMPIInput()

template<typename inputType >
int ttkAlgorithm::checkEmptyMPIInput ( inputType *  input)
inline

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.

Template Parameters
inputType
Parameters
inputthe input to assess
Returns
int 0: error, 1: stop without error, 2: continue

Definition at line 250 of file ttkAlgorithm.h.

◆ checkForGlobalAndComputeOrderArray()

vtkDataArray * ttkAlgorithm::checkForGlobalAndComputeOrderArray ( vtkDataSet *const  inputData,
vtkDataArray *  scalarArray,
const int  scalarArrayIdx,
const bool  getGlobalOrder,
vtkDataArray *  orderArray,
ttk::Triangulation triangulation,
const bool  enforceOrderArrayIdx 
)

Checks whether the global order should be global or not, then triggers the computation accordingly.

Definition at line 166 of file ttkAlgorithm.cpp.

◆ checkGlobalIdValidity()

bool ttkAlgorithm::checkGlobalIdValidity ( ttk::LongSimplexId globalIds,
ttk::SimplexId  simplexNumber,
unsigned char *  ghost,
int *  rankArray 
)
protected

This method checks the validity of the global identifiers given in argument. A set of global identifiers is valid if the highest global id is equal to the global number of simplices (without ghosts) - 1 and if the lowest global id is equal to 0. Simplices can either be vertices or simplices of highest dimension.

◆ ComputeOrderArray()

vtkDataArray * ttkAlgorithm::ComputeOrderArray ( vtkDataSet *const  inputData,
vtkDataArray *  scalarArray,
const int  scalarArrayIdx,
const bool  getGlobalOrder,
vtkDataArray *  oldOrderArray,
ttk::Triangulation triangulation 
)

Initializes and computes the order array. When using MPI processes, the order will be local when getGlobalOrder is set to false, and global otherwise. This function is called in GetOrderArray and should not be called directly in other functions or algorithms.

Definition at line 100 of file ttkAlgorithm.cpp.

◆ FillInputPortInformation()

int ttkAlgorithm::FillInputPortInformation ( int   ttkNotUsedport,
vtkInformation *  ttkNotUsedinfo 
)
inlineoverrideprotected

This method specifies the required input object data types of the filter by adding the vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE() key to the port information.

This method has to be overridden to specify the required input data types.

Definition at line 437 of file ttkAlgorithm.h.

◆ FillOutputPortInformation()

int ttkAlgorithm::FillOutputPortInformation ( int   ttkNotUsedport,
vtkInformation *  ttkNotUsedinfo 
)
inlineoverrideprotected

This method specifies in the port information the data type of the output objects. It is possible to either explicitly specify a type by adding a vtkDataObject::DATA_TYPE_NAME() key, or to pass a type of an input port to an output port by adding the ttkAlgorithm::SAME_DATA_TYPE_AS_INPUT_PORT() key.

This method has to be overridden to specify the data types of the outputs.

Definition at line 452 of file ttkAlgorithm.h.

◆ GenerateGlobalIds()

int ttkAlgorithm::GenerateGlobalIds ( vtkDataSet *  input,
std::unordered_map< ttk::SimplexId, ttk::SimplexId > &  vertGtoL,
std::vector< int > &  neighborRanks,
std::map< int, int > &  neighborsToId 
)
protected

This methods generates global ids and is called during the MPI preconditioning. It behaves differently for PolyData and ImageData datasets.

◆ GetClassName()

virtual const char * ttkAlgorithm::GetClassName ( )
virtual

Reimplemented in ttkArrayEditor, ttkArrayPreconditioning, ttkBarycentricSubdivision, ttkBlockAggregator, ttkBottleneckDistance, ttkCinemaDarkroomCamera, ttkCinemaDarkroomColorMapping, ttkCinemaDarkroomCompositing, ttkCinemaDarkroomFXAA, ttkCinemaDarkroomIBS, ttkCinemaDarkroomNoise, ttkCinemaDarkroomShader, ttkCinemaDarkroomSSAO, ttkCinemaDarkroomSSDoF, ttkCinemaDarkroomSSSAO, ttkCinemaImaging, ttkCinemaProductReader, ttkCinemaQuery, ttkCinemaReader, ttkCinemaWriter, ttkClusteringMetrics, ttkComponentSize, ttkConnectedComponents, ttkContinuousScatterPlot, ttkContourAroundPoint, ttkContourForests, ttkContourTree, ttkContourTreeAlignment, ttkDataSetInterpolator, ttkDataSetToTable, ttkDepthImageBasedGeometryApproximation, ttkDimensionReduction, ttkDiscreteGradient, ttkDistanceField, ttkDistanceMatrixDistortion, ttkEigenField, ttkEndFor, ttkExtract, ttkFiber, ttkFiberSurface, ttkFlattenMultiBlock, ttkForEach, ttkGaussianPointCloud, ttkGeometrySmoother, ttkGridLayout, ttkHarmonicField, ttkHelloWorld, ttkIcosphere, ttkIcosphereFromObject, ttkIcospheresFromPoints, ttkIdentifierRandomizer, ttkIdentifiers, ttkIdentifyByScalarField, ttkImportEmbeddingFromTable, ttkIntegralLines, ttkJacobiSet, ttkLDistance, ttkLDistanceMatrix, ttkMandatoryCriticalPoints, ttkManifoldCheck, ttkMarchingTetrahedra, ttkMatrixToHeatMap, ttkMergeBlockTables, ttkMergeTree, ttkMergeTreeAutoencoder, ttkMergeTreeAutoencoderDecoding, ttkMergeTreeClustering, ttkMergeTreeDistanceMatrix, ttkMergeTreePrincipalGeodesics, ttkMergeTreePrincipalGeodesicsDecoding, ttkMergeTreeTemporalReduction, ttkMergeTreeTemporalReductionDecoding, ttkMeshGraph, ttkMeshSubdivision, ttkMetricDistortion, ttkMorphologicalOperators, ttkMorseSmaleComplex, ttkMorseSmaleQuadrangulation, ttkPathCompression, ttkPeriodicGhostsGeneration, ttkPersistenceCurve, ttkPersistenceDiagram, ttkPersistenceDiagramApproximation, ttkPersistenceDiagramClustering, ttkPersistenceDiagramDistanceMatrix, ttkPersistentGenerators, ttkPlanarGraphLayout, ttkPointDataConverter, ttkPointDataSelector, ttkPointMerger, ttkPointSetToCurve, ttkPointSetToSurface, ttkProjectionFromField, ttkProjectionFromTable, ttkQuadrangulationSubdivision, ttkRangePolygon, ttkReebGraph, ttkReebSpace, ttkRipsComplex, ttkRipsPersistenceDiagram, ttkScalarFieldCriticalPoints, ttkScalarFieldNormalizer, ttkScalarFieldSmoother, ttkSignedDistanceField, ttkSphereFromPoint, ttkStableManifoldPersistence, ttkStringArrayConverter, ttkSurfaceGeometrySmoother, ttkTableDataSelector, ttkTableDistanceMatrix, ttkTextureMapFromField, ttkTopologicalCompression, ttkTopologicalCompressionReader, ttkTopologicalCompressionWriter, ttkTopologicalSimplification, ttkTopologicalSimplificationByPersistence, ttkTrackingFromFields, ttkTrackingFromOverlap, ttkTrackingFromPersistenceDiagrams, ttkTriangulationManager, ttkTriangulationReader, ttkTriangulationRequest, ttkTriangulationWriter, ttkUncertainDataEstimator, and ttkWebSocketIO.

◆ GetIdentifierArrayPtr()

ttk::SimplexId * ttkAlgorithm::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 
)

Retrieve an identifier field and provides a ttk::SimplexId pointer to the underlying buffer.

Use the same parameters as GetOptionalArray to fetch the VTK data array.

Fills the vector spareStorage if the VTK data array is not a ttkSimplexIdTypeArray. This vector should have a lifetime of a least the filter's RequestData method.

Definition at line 368 of file ttkAlgorithm.cpp.

◆ GetOptionalArray()

vtkDataArray * ttkAlgorithm::GetOptionalArray ( const bool &  enforceArrayIndex,
const int &  arrayIndex,
const std::string &  arrayName,
vtkDataSet *const  inputData,
const int &  inputPort = 0 
)

This method retrieves an optional array to process. The logic of this method is as follows:

  • if enforceArrayIndex is set to true, this method will try to retrieve the optional array to process by its identifier arrayIndex (see GetInputArrayToProcess() and SetInputArrayToProcess())
  • if enforceArrayIndex is set to false, this method will try to retrieve the optional array to process by its name arrayName.

In both cases, this information will be retrieved on port inputPort.

Definition at line 77 of file ttkAlgorithm.cpp.

◆ GetOrderArray()

vtkDataArray * ttkAlgorithm::GetOrderArray ( vtkDataSet *const  inputData,
const int  scalarArrayIdx,
ttk::Triangulation triangulation,
const bool  getGlobalOrder = false,
const int  orderArrayIdx = 0,
const bool  enforceOrderArrayIdx = false 
)

Retrieves an offset field from the given scalar field sfArray or generates one, either disambiguated with the implicit vertex identifier field, or with a user-provided offset field through the enforceArrayIndex parameter and the arrayIndex. The generated sorted offset field is then attached to the input vtkDataset inputData. The argument getGlobalOrder, when set to true, triggers a computation of a global order array, over all MPI processes. The triangulation argument is only required when getGlobalOrder is set to true.

Definition at line 232 of file ttkAlgorithm.cpp.

◆ GetOrderArrayName()

std::string ttkAlgorithm::GetOrderArrayName ( vtkDataArray *const  array)
static

Returns a string containing the name of the corresponding offset field from a given scalar field

Definition at line 95 of file ttkAlgorithm.cpp.

◆ GetOutput() [1/2]

vtkDataSet * ttkAlgorithm::GetOutput ( )

Get the output data object for a port on this algorithm.

Definition at line 427 of file ttkAlgorithm.cpp.

◆ GetOutput() [2/2]

vtkDataSet * ttkAlgorithm::GetOutput ( int  port)

Definition at line 431 of file ttkAlgorithm.cpp.

◆ GetTriangulation()

ttk::Triangulation * ttkAlgorithm::GetTriangulation ( vtkDataSet *  dataSet)

This method retrieves the ttk::Triangulation of a vtkDataSet.

Note, this method initializes a triangulation if one does not exist already, and updates the triangulation if the connectivity of vtkDataSet changed since the last retrieval.

In the current implementation, a pointer to the triangulation of a vtkDataSet is stored as a special field data array (ttkTriangulationArray) of the vtkDataSet. First, the method checks if such an array exists. If this is not the case, then the method initializes a triangulation for the given vtkDataSet and adds a corresponding ttkTriangulationArray to the vtkDataSet's field data. If the vtkDataSet has such a field data array, then the method performs a fast check to verify that the referenced triangulation is still valid for the given vtkDataSet and updates the triangulation if necessary. Finally, the method returns the triangulation that is referenced by the ttkTriangulationArray.

To pass the triangulation along the pipeline, filters have to perform a shallow or deep copy of an input that already has a triangulation.

Definition at line 41 of file ttkAlgorithm.cpp.

◆ IsA()

virtual int ttkAlgorithm::IsA ( const char *  type)
virtual

Reimplemented in ttkArrayEditor, ttkArrayPreconditioning, ttkBarycentricSubdivision, ttkBlockAggregator, ttkBottleneckDistance, ttkCinemaDarkroomCamera, ttkCinemaDarkroomColorMapping, ttkCinemaDarkroomCompositing, ttkCinemaDarkroomFXAA, ttkCinemaDarkroomIBS, ttkCinemaDarkroomNoise, ttkCinemaDarkroomShader, ttkCinemaDarkroomSSAO, ttkCinemaDarkroomSSDoF, ttkCinemaDarkroomSSSAO, ttkCinemaImaging, ttkCinemaProductReader, ttkCinemaQuery, ttkCinemaReader, ttkCinemaWriter, ttkClusteringMetrics, ttkComponentSize, ttkConnectedComponents, ttkContinuousScatterPlot, ttkContourAroundPoint, ttkContourForests, ttkContourTree, ttkContourTreeAlignment, ttkDataSetInterpolator, ttkDataSetToTable, ttkDepthImageBasedGeometryApproximation, ttkDimensionReduction, ttkDiscreteGradient, ttkDistanceField, ttkDistanceMatrixDistortion, ttkEigenField, ttkEndFor, ttkExtract, ttkFiber, ttkFiberSurface, ttkFlattenMultiBlock, ttkForEach, ttkGaussianPointCloud, ttkGeometrySmoother, ttkGridLayout, ttkHarmonicField, ttkHelloWorld, ttkIcosphere, ttkIcosphereFromObject, ttkIcospheresFromPoints, ttkIdentifierRandomizer, ttkIdentifiers, ttkIdentifyByScalarField, ttkImportEmbeddingFromTable, ttkIntegralLines, ttkJacobiSet, ttkLDistance, ttkLDistanceMatrix, ttkMandatoryCriticalPoints, ttkManifoldCheck, ttkMarchingTetrahedra, ttkMatrixToHeatMap, ttkMergeBlockTables, ttkMergeTree, ttkMergeTreeAutoencoder, ttkMergeTreeAutoencoderDecoding, ttkMergeTreeClustering, ttkMergeTreeDistanceMatrix, ttkMergeTreePrincipalGeodesics, ttkMergeTreePrincipalGeodesicsDecoding, ttkMergeTreeTemporalReduction, ttkMergeTreeTemporalReductionDecoding, ttkMeshGraph, ttkMeshSubdivision, ttkMetricDistortion, ttkMorphologicalOperators, ttkMorseSmaleComplex, ttkMorseSmaleQuadrangulation, ttkPathCompression, ttkPeriodicGhostsGeneration, ttkPersistenceCurve, ttkPersistenceDiagram, ttkPersistenceDiagramApproximation, ttkPersistenceDiagramClustering, ttkPersistenceDiagramDistanceMatrix, ttkPersistentGenerators, ttkPlanarGraphLayout, ttkPointDataConverter, ttkPointDataSelector, ttkPointMerger, ttkPointSetToCurve, ttkPointSetToSurface, ttkProjectionFromField, ttkProjectionFromTable, ttkQuadrangulationSubdivision, ttkRangePolygon, ttkReebGraph, ttkReebSpace, ttkRipsComplex, ttkRipsPersistenceDiagram, ttkScalarFieldCriticalPoints, ttkScalarFieldNormalizer, ttkScalarFieldSmoother, ttkSignedDistanceField, ttkSphereFromPoint, ttkStableManifoldPersistence, ttkStringArrayConverter, ttkSurfaceGeometrySmoother, ttkTableDataSelector, ttkTableDistanceMatrix, ttkTextureMapFromField, ttkTopologicalCompression, ttkTopologicalCompressionReader, ttkTopologicalCompressionWriter, ttkTopologicalSimplification, ttkTopologicalSimplificationByPersistence, ttkTrackingFromFields, ttkTrackingFromOverlap, ttkTrackingFromPersistenceDiagrams, ttkTriangulationManager, ttkTriangulationReader, ttkTriangulationRequest, ttkTriangulationWriter, ttkUncertainDataEstimator, and ttkWebSocketIO.

◆ IsTypeOf()

static int ttkAlgorithm::IsTypeOf ( const char *  type)
static

◆ MPIGhostPipelinePreconditioning()

void ttkAlgorithm::MPIGhostPipelinePreconditioning ( vtkDataSet *  input)
protected

This method is called in GetTriangulation, after the triangulation as been created. It verifies that ghost cells and points are present and if they are not, computes them.

◆ MPIPipelinePreconditioning()

void ttkAlgorithm::MPIPipelinePreconditioning ( vtkDataSet *  input,
std::vector< int > &  neighbors,
std::map< int, int > &  neighToId,
ttk::Triangulation triangulation = nullptr 
)
protected

This method is called in GetTriangulation, after the triangulation as been created. It verifies that several attributes necessary for MPI computation are present in the pipeline and if not, computes them.

◆ MPITriangulationPreconditioning()

void ttkAlgorithm::MPITriangulationPreconditioning ( ttk::Triangulation triangulation,
vtkDataSet *  input 
)
protected

This method is called in GetTriangulation, after the triangulation as been created. It retrieves several attributes from the pipeline to precondition the triangulation for MPI computation.

◆ New()

static ttkAlgorithm * ttkAlgorithm::New ( )
static

◆ ProcessRequest()

int ttkAlgorithm::ProcessRequest ( vtkInformation *  request,
vtkInformationVector **  inputVectors,
vtkInformationVector *  outputVector 
)
override

This method processes a pipeline request such as vtkDemandDrivenPipeline::REQUEST_DATA or vtkDemandDrivenPipeline::REQUEST_INFORMATION.

It is not recommended to override this method in order to be conform to the VTK/TTK pipeline model.

Definition at line 943 of file ttkAlgorithm.cpp.

◆ RequestData()

virtual int ttkAlgorithm::RequestData ( vtkInformation *  ttkNotUsedrequest,
vtkInformationVector **  ttkNotUsedinputVectors,
vtkInformationVector *  ttkNotUsedoutputVector 
)
inlineprotectedvirtual

This method is called during the seventh pipeline pass in ProcessRequest() to execute an algorithm and update the so far empty output data objects.

This method has to be overridden in order to implement the purpose of the filter.

Definition at line 423 of file ttkAlgorithm.h.

◆ RequestDataNotGenerated()

virtual int ttkAlgorithm::RequestDataNotGenerated ( vtkInformation *  ttkNotUsedrequest,
vtkInformationVector **  ttkNotUsedinputVectors,
vtkInformationVector *  ttkNotUsedoutputVector 
)
inlineprotectedvirtual

This method is called during the sixth pipeline pass in ProcessRequest() to specify which outputs will currently not be generated during a RequestData() call.

In general it should not be necessary to override this method.

Definition at line 409 of file ttkAlgorithm.h.

◆ RequestDataObject()

int ttkAlgorithm::RequestDataObject ( vtkInformation *  request,
vtkInformationVector **  inputVectors,
vtkInformationVector *  outputVector 
)
protectedvirtual

This method is called during the first pipeline pass in ProcessRequest() to create empty output data objects. The data type of the generated outputs is specified in FillOutputPortInformation().

In general it should not be necessary to override this method.

Definition at line 451 of file ttkAlgorithm.cpp.

◆ RequestInformation()

virtual int ttkAlgorithm::RequestInformation ( vtkInformation *  ttkNotUsedrequest,
vtkInformationVector **  ttkNotUsedinputVectors,
vtkInformationVector *  ttkNotUsedoutputVector 
)
inlineprotectedvirtual

This method is called during the second pipeline pass in ProcessRequest() to provide lightweight information about the outputs without any lengthy computations. For example, the data extend or the number of available time steps.

In general, it should only be necessary to override this method to provide information about new vtkImageData output objects, such as their extend, spacing, and origin.

Definition at line 354 of file ttkAlgorithm.h.

◆ RequestUpdateExtent()

virtual int ttkAlgorithm::RequestUpdateExtent ( vtkInformation *  ttkNotUsedrequest,
vtkInformationVector **  ttkNotUsedinputVectors,
vtkInformationVector *  ttkNotUsedoutputVector 
)
inlineprotectedvirtual

This method is called during the fifth pipeline pass in ProcessRequest() to specify which portion of its input is needed to create the portion of its output that a downstream filter requested.

In general it should not be necessary to override this method unless the filter supports spatial or temporal streaming.

Definition at line 395 of file ttkAlgorithm.h.

◆ RequestUpdateTime()

virtual int ttkAlgorithm::RequestUpdateTime ( vtkInformation *  ttkNotUsedrequest,
vtkInformationVector **  ttkNotUsedinputVectors,
vtkInformationVector *  ttkNotUsedoutputVector 
)
inlineprotectedvirtual

This method is called during the third pipeline pass in ProcessRequest() to update time.

In general it should not be necessary to override this method.

Definition at line 367 of file ttkAlgorithm.h.

◆ RequestUpdateTimeDependentInformation()

virtual int ttkAlgorithm::RequestUpdateTimeDependentInformation ( vtkInformation *  ttkNotUsedrequest,
vtkInformationVector **  ttkNotUsedinputVectors,
vtkInformationVector *  ttkNotUsedoutputVector 
)
inlineprotectedvirtual

This method is called during the fourth pipeline pass in ProcessRequest() to set time dependent information.

In general it should not be necessary to override this method.

Definition at line 379 of file ttkAlgorithm.h.

◆ SafeDownCast()

static ttkAlgorithm * ttkAlgorithm::SafeDownCast ( vtkObject *  o)
static

◆ SAME_DATA_TYPE_AS_INPUT_PORT()

static vtkInformationIntegerKey * ttkAlgorithm::SAME_DATA_TYPE_AS_INPUT_PORT ( )
static

This key can be used during the FillOutputPortInformation() call to specify that an output port should produce the same data type as a certain input port.

◆ SetCompactTriangulationCacheSize()

void ttkAlgorithm::SetCompactTriangulationCacheSize ( float  cacheSize)
inline

Set the cache size of the compact triangulation.

Definition at line 83 of file ttkAlgorithm.h.

◆ SetDebugLevel()

void ttkAlgorithm::SetDebugLevel ( int  debugLevel)
inline

Controls the debug level used by algorithms that are invoked by the VTK wrapper.

Definition at line 75 of file ttkAlgorithm.h.

◆ SetInputData() [1/2]

void ttkAlgorithm::SetInputData ( int  index,
vtkDataSet *  input 
)

Definition at line 439 of file ttkAlgorithm.cpp.

◆ SetInputData() [2/2]

void ttkAlgorithm::SetInputData ( vtkDataSet *  input)

Assign a data object as input. Note that this method does not establish a pipeline connection. Use SetInputConnection() to setup a pipeline connection.

Definition at line 435 of file ttkAlgorithm.cpp.

◆ SetThreadNumber()

void ttkAlgorithm::SetThreadNumber ( int  threadNumber)
inline

Explicitly sets the maximum number of threads for the base code (overridden by UseAllCores member).

Definition at line 58 of file ttkAlgorithm.h.

◆ SetUseAllCores()

void ttkAlgorithm::SetUseAllCores ( bool  useAllCores)
inline

Controls if the base code should use all available cores.

Definition at line 66 of file ttkAlgorithm.h.

◆ UpdateThreadNumber()

void ttkAlgorithm::UpdateThreadNumber ( )
inline

Updates the number of threads of the base class based on the settings of the VTK wrapper.

Definition at line 47 of file ttkAlgorithm.h.

Member Data Documentation

◆ CompactTriangulationCacheSize

float ttkAlgorithm::CompactTriangulationCacheSize {0.2f}
protected

Definition at line 268 of file ttkAlgorithm.h.


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