VTK  9.2.6
vtkProbeFilter.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkProbeFilter.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
80#ifndef vtkProbeFilter_h
81#define vtkProbeFilter_h
82
83#include "vtkDataSetAlgorithm.h"
84#include "vtkDataSetAttributes.h" // needed for vtkDataSetAttributes::FieldList
85#include "vtkFiltersCoreModule.h" // For export macro
86
88class vtkCell;
89class vtkCharArray;
90class vtkIdTypeArray;
91class vtkImageData;
92class vtkPointData;
94
95class VTKFILTERSCORE_EXPORT vtkProbeFilter : public vtkDataSetAlgorithm
96{
97public:
100 void PrintSelf(ostream& os, vtkIndent indent) override;
101
103
112
120
122
127 vtkSetMacro(CategoricalData, vtkTypeBool);
128 vtkGetMacro(CategoricalData, vtkTypeBool);
129 vtkBooleanMacro(CategoricalData, vtkTypeBool);
131
133
143 vtkSetMacro(SpatialMatch, vtkTypeBool);
144 vtkGetMacro(SpatialMatch, vtkTypeBool);
145 vtkBooleanMacro(SpatialMatch, vtkTypeBool);
147
149
155
157
162 vtkSetStringMacro(ValidPointMaskArrayName);
163 vtkGetStringMacro(ValidPointMaskArrayName);
165
167
171 vtkSetMacro(PassCellArrays, vtkTypeBool);
172 vtkBooleanMacro(PassCellArrays, vtkTypeBool);
173 vtkGetMacro(PassCellArrays, vtkTypeBool);
176
180 vtkSetMacro(PassPointArrays, vtkTypeBool);
181 vtkBooleanMacro(PassPointArrays, vtkTypeBool);
182 vtkGetMacro(PassPointArrays, vtkTypeBool);
184
186
190 vtkSetMacro(PassFieldArrays, vtkTypeBool);
191 vtkBooleanMacro(PassFieldArrays, vtkTypeBool);
192 vtkGetMacro(PassFieldArrays, vtkTypeBool);
194
196
201 vtkSetMacro(Tolerance, double);
202 vtkGetMacro(Tolerance, double);
204
206
211 vtkSetMacro(ComputeTolerance, bool);
212 vtkBooleanMacro(ComputeTolerance, bool);
213 vtkGetMacro(ComputeTolerance, bool);
215
217
224 vtkGetObjectMacro(FindCellStrategy, vtkFindCellStrategy);
226
228
237 vtkGetObjectMacro(CellLocatorPrototype, vtkAbstractCellLocator);
239
240protected:
242 ~vtkProbeFilter() override;
243
247
253
257 void Probe(vtkDataSet* input, vtkDataSet* source, vtkDataSet* output);
258
264
268 virtual void InitializeForProbing(vtkDataSet* input, vtkDataSet* output);
269 virtual void InitializeOutputArrays(vtkPointData* outPD, vtkIdType numPts);
270
275 void DoProbing(vtkDataSet* input, int srcIdx, vtkDataSet* source, vtkDataSet* output);
276
278
282
284
285 double Tolerance;
287
291
292 // Support various methods to support the FindCell() operation
295
298
299private:
300 vtkProbeFilter(const vtkProbeFilter&) = delete;
301 void operator=(const vtkProbeFilter&) = delete;
302
303 // Probe only those points that are marked as not-probed by the MaskPoints
304 // array.
305 void ProbeEmptyPoints(vtkDataSet* input, int srcIdx, vtkDataSet* source, vtkDataSet* output);
306
307 // A faster implementation for vtkImageData input.
308 void ProbePointsImageData(
309 vtkImageData* input, int srcIdx, vtkDataSet* source, vtkImageData* output);
310 void ProbeImagePointsInCell(vtkCell* cell, vtkIdType cellId, vtkDataSet* source, int srcBlockId,
311 const double start[3], const double spacing[3], const int dim[3], vtkPointData* outPD,
312 char* maskArray, double* wtsBuff);
313
314 class ProbeImageDataWorklet;
315
316 // A faster implementation for vtkImageData source.
317 void ProbeImageDataPoints(
318 vtkDataSet* input, int srcIdx, vtkImageData* sourceImage, vtkDataSet* output);
319 void ProbeImageDataPointsSMP(vtkDataSet* input, vtkImageData* source, int srcIdx,
320 vtkPointData* outPD, char* maskArray, vtkIdList* pointIds, vtkIdType startId, vtkIdType endId,
321 bool baseThread);
322
323 class ProbeImageDataPointsWorklet;
324
325 class vtkVectorOfArrays;
326 vtkVectorOfArrays* CellArrays;
327};
328
329#endif
an abstract base class for locators which find cells
Proxy object to connect input/output ports.
abstract class to specify cell behavior
Definition vtkCell.h:70
dynamic, self-adjusting array of char
general representation of visualization data
Superclass for algorithms that produce output of the same type as input.
helps manage arrays from multiple vtkDataSetAttributes.
abstract class to specify dataset behavior
Definition vtkDataSet.h:72
helper class to manage the vtkPointSet::FindCell() METHOD
list of point or cell ids
Definition vtkIdList.h:43
dynamic, self-adjusting array of vtkIdType
topologically and geometrically regular array of data
a simple class to control print indentation
Definition vtkIndent.h:49
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
represent and manipulate point attribute data
sample data values at specified point locations
virtual void InitializeForProbing(vtkDataSet *input, vtkDataSet *output)
Initializes output and various arrays which keep track for probing status.
void SetSourceData(vtkDataObject *source)
Specify the data set that will be probed at the input points.
vtkFindCellStrategy * FindCellStrategy
vtkIdTypeArray * ValidPoints
virtual void SetCellLocatorPrototype(vtkAbstractCellLocator *)
Set/Get the prototype cell locator to perform the FindCell() operation.
virtual void SetFindCellStrategy(vtkFindCellStrategy *)
Set / get the strategy used to perform the FindCell() operation.
virtual void InitializeOutputArrays(vtkPointData *outPD, vtkIdType numPts)
vtkTypeBool CategoricalData
void Probe(vtkDataSet *input, vtkDataSet *source, vtkDataSet *output)
Equivalent to calling BuildFieldList(); InitializeForProbing(); DoProbing().
~vtkProbeFilter() override
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when each filter in the pipeline decides what portion of its inp...
vtkCharArray * MaskPoints
char * ValidPointMaskArrayName
vtkTypeBool SpatialMatch
vtkDataSetAttributes::FieldList * CellList
vtkIdTypeArray * GetValidPoints()
Get the list of point ids in the output that contain attribute data interpolated from the source.
vtkTypeBool PassCellArrays
vtkDataSetAttributes::FieldList * PointList
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetSourceConnection(vtkAlgorithmOutput *algOutput)
Specify the data set that will be probed at the input points.
void PassAttributeData(vtkDataSet *input, vtkDataObject *source, vtkDataSet *output)
Call at end of RequestData() to pass attribute data respecting the PassCellArrays,...
void BuildFieldList(vtkDataSet *source)
Build the field lists.
vtkAbstractCellLocator * CellLocatorPrototype
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when a request asks for Information.
static vtkProbeFilter * New()
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when a request asks the algorithm to do its work.
void DoProbing(vtkDataSet *input, int srcIdx, vtkDataSet *source, vtkDataSet *output)
Probe appropriate points srcIdx is the index in the PointList for the given source.
vtkDataObject * GetSource()
Specify the data set that will be probed at the input points.
vtkTypeBool PassPointArrays
vtkTypeBool PassFieldArrays
int vtkTypeBool
Definition vtkABI.h:69
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
int vtkIdType
Definition vtkType.h:332