TTK VTK-filter for the computation of edge-based integral lines of the gradient of an input scalar field.
More...
|
virtual const char * | GetClassName () |
|
virtual int | IsA (const char *type) |
|
virtual int | GetDirection () |
|
virtual void | SetDirection (int) |
|
virtual void | SetForceInputVertexScalarField (bool) |
|
virtual bool | GetForceInputVertexScalarField () |
|
virtual void | SetForceInputOffsetScalarField (bool) |
|
virtual bool | GetForceInputOffsetScalarField () |
|
virtual void | SetEnableForking (bool) |
|
virtual bool | GetEnableForking () |
|
template<typename triangulationType > |
int | getTrajectories (vtkDataSet *input, const triangulationType *triangulation, const std::vector< ttk::ArrayLinkedList< ttk::intgl::IntegralLine, INTEGRAL_LINE_TABULAR_SIZE > > &integralLines, vtkUnstructuredGrid *output) |
|
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) |
|
|
| ttkIntegralLines () |
|
| ~ttkIntegralLines () 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) |
|
| IntegralLines () |
|
| ~IntegralLines () override |
|
template<class triangulationType = ttk::AbstractTriangulation> |
int | execute (triangulationType *triangulation) |
|
template<class triangulationType = ttk::AbstractTriangulation> |
void | computeIntegralLine (const triangulationType *triangulation, ttk::intgl::IntegralLine *integralLine, const ttk::SimplexId *offsets) const |
| Computes the integral line starting at the vertex of global id seedIdentifier.
|
|
template<class triangulationType > |
void | createTask (const triangulationType *triangulation, std::vector< ttk::intgl::IntegralLine * > &chunkIntegralLine, const ttk::SimplexId *offsets, int nbElement) const |
| Create an OpenMP task that contains the computation of nbElement integral lines.
|
|
template<class triangulationType > |
void | prepareForTask (const triangulationType *triangulation, std::vector< ttk::intgl::IntegralLine * > &chunkIntegralLine, int startingIndex, int nbElement, std::vector< SimplexId > *seeds) const |
| Initializes the three attributes of an integral line: the global id of its seed, its trajectory, and the distances of its points with regards to its seed. Then stores the pointers to those objects in chunkIntegralLine to use it for task creation.
|
|
void | setVertexNumber (const SimplexId &vertexNumber) |
|
void | setSeedNumber (const SimplexId &seedNumber) |
|
void | setDirection (int direction) |
|
void | findNextVertex (ttk::SimplexId &vnext, ttk::SimplexId &fnext, std::vector< ttk::SimplexId > &component, const SimplexId *offsets) const |
| Finds the vertex of highest or lowest offsets (depending on the direction of the integral line) in the component vector.
|
|
int | preconditionTriangulation (ttk::AbstractTriangulation *triangulation) |
|
void | setInputScalarField (void *data) |
|
void | setInputOffsets (const SimplexId *const data) |
|
void | setVertexIdentifierScalarField (std::vector< SimplexId > *const data) |
|
void | setOutputIntegralLines (std::vector< ttk::ArrayLinkedList< ttk::intgl::IntegralLine, INTEGRAL_LINE_TABULAR_SIZE > > *integralLines) |
|
void | setChunkSize (int size) |
|
void | buildScalarFieldCriticalPoints () |
|
template<class triangulationType > |
void | prepareForTask (const triangulationType *ttkNotUsed(triangulation), std::vector< ttk::intgl::IntegralLine * > &chunkIntegralLine, int startingIndex, int nbElement, std::vector< SimplexId > *seeds) const |
|
TTK VTK-filter for the computation of edge-based integral lines of the gradient of an input scalar field.
- Author
- Guillaume Favelier guill.nosp@m.aume.nosp@m..fave.nosp@m.lier.nosp@m.@lip6.nosp@m..fr
-
Eve Le Guillou eve.l.nosp@m.e-gu.nosp@m.illou.nosp@m.@lip.nosp@m.6.fr
- Date
- March 2016
-
MPI implementation: December 2022
The filter takes on its input a scalar field attached as point data to an input geometry (either 2D or 3D, either regular grids or triangulations) and computes the forward or backward integral lines along the edges of the input mesh, given a list of input sources. The sources are specified with a vtkPointSet on which is attached as point data a scalar field that represent the vertex identifiers of the sources in the input geometry.
- Parameters
-
Input0 | Input scalar field, either 2D or 3D, either regular grid or triangulation (vtkDataSet) |
Input1 | Input sources (vtkPointSet) |
Output | Output integral lines (vtkUnstructuredGrid) |
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()’.
The vertex identifier array needs to be specified via the standard VTK call vtkAlgorithm::SetInputArrayToProcess() with the following parameters:
- Parameters
-
idx | 2 (FIXED: the third array the algorithm requires) |
port | 1 (FIXED: second port) |
connection | 0 (FIXED: first connection) |
fieldAssociation | 0 (FIXED: point data) |
arrayName | (DYNAMIC: string identifier of the vertex identifier array) |
- Note
- : To use this optional array,
ForceInputVertexScalarField
needs to be enabled with the setter ‘setForceInputVertexScalarField()’.
This filter can be used as any other VTK filter (for instance, by using the sequence of calls SetInputData(), Update(), GetOutput()).
See the related ParaView example state files for usage examples within a VTK pipeline.
- See also
- ttk::IntegralLines
-
vtkIdentifiers
Online examples:
Definition at line 77 of file ttkIntegralLines.h.