TTK VTK-filter for the computation of critical points in PL scalar fields defined on PL manifolds.
More...
|
virtual const char * | GetClassName () |
|
virtual int | IsA (const char *type) |
|
virtual bool | GetVertexBoundary () |
|
virtual void | SetVertexBoundary (bool) |
|
virtual bool | GetVertexIds () |
|
virtual void | SetVertexIds (bool) |
|
virtual bool | GetVertexScalars () |
|
virtual void | SetVertexScalars (bool) |
|
virtual bool | GetForceInputOffsetScalarField () |
|
virtual void | SetForceInputOffsetScalarField (bool) |
|
virtual void | SetBackEnd (int _arg) |
|
virtual void | SetBackEnd (BACKEND) |
|
virtual BACKEND | GetBackEnd () const |
|
virtual int | GetStartingResolutionLevel () |
|
virtual void | SetStartingResolutionLevel (int) |
|
virtual int | GetStoppingResolutionLevel () |
|
virtual void | SetStoppingResolutionLevel (int) |
|
virtual bool | GetIsResumable () |
|
virtual void | SetIsResumable (bool) |
|
virtual double | GetTimeLimit () |
|
virtual void | SetTimeLimit (double) |
|
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) |
|
|
| ttkScalarFieldCriticalPoints () |
|
| ~ttkScalarFieldCriticalPoints () 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) |
|
| 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)) |
|
TTK VTK-filter for the computation of critical points in PL scalar fields defined on PL manifolds.
- Author
- Julien Tierny julie.nosp@m.n.ti.nosp@m.erny@.nosp@m.lip6.nosp@m..fr
- Date
- June 2015.
This filter computes the list of critical points of the input scalar field and classify them according to their type.
- Parameters
-
Input | Input PL scalar field (vtkDataSet) |
Output | Output critical points (vtkDataSet) |
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) |
The optional offset array can be specified via the standard VTK call vtkAlgorithm::SetInputArrayToProcess() with the following parameters:
- Parameters
-
idx | 1 (FIXED: the second 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 offset array) |
- Note
- : To use this optional array,
ForceInputOffsetScalarField
needs to be enabled with the setter ‘setForceInputOffsetScalarField()’.
This filter can be used as any other VTK filter (for instance, by using the sequence of calls SetInputData(), Update(), GetOutput()).
See the corresponding standalone program for a usage example:
- standalone/ScalarFieldCriticalPoints/main.cpp
See the related ParaView example state files for usage examples within a VTK pipeline.
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
- See also
- ttk::ScalarFieldCriticalPoints
Online examples:
Definition at line 91 of file ttkScalarFieldCriticalPoints.h.