You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
3.7 KiB
93 lines
3.7 KiB
2 years ago
|
/*=========================================================================
|
||
|
|
||
|
Program: Visualization Toolkit
|
||
|
Module: $RCSfile: vtkProbeFilter.h,v $
|
||
|
|
||
|
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
||
|
All rights reserved.
|
||
|
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
|
||
|
|
||
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
||
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||
|
PURPOSE. See the above copyright notice for more information.
|
||
|
|
||
|
=========================================================================*/
|
||
|
// .NAME vtkProbeFilter - sample data values at specified point locations
|
||
|
// .SECTION Description
|
||
|
// vtkProbeFilter is a filter that computes point attributes (e.g., scalars,
|
||
|
// vectors, etc.) at specified point positions. The filter has two inputs:
|
||
|
// the Input and Source. The Input geometric structure is passed through the
|
||
|
// filter. The point attributes are computed at the Input point positions
|
||
|
// by interpolating into the source data. For example, we can compute data
|
||
|
// values on a plane (plane specified as Input) from a volume (Source).
|
||
|
//
|
||
|
// This filter can be used to resample data, or convert one dataset form into
|
||
|
// another. For example, an unstructured grid (vtkUnstructuredGrid) can be
|
||
|
// probed with a volume (three-dimensional vtkImageData), and then volume
|
||
|
// rendering techniques can be used to visualize the results. Another example:
|
||
|
// a line or curve can be used to probe data to produce x-y plots along
|
||
|
// that line or curve.
|
||
|
|
||
|
#ifndef __vtkProbeFilter_h
|
||
|
#define __vtkProbeFilter_h
|
||
|
|
||
|
#include "vtkDataSetAlgorithm.h"
|
||
|
|
||
|
class vtkIdTypeArray;
|
||
|
|
||
|
class VTK_GRAPHICS_EXPORT vtkProbeFilter : public vtkDataSetAlgorithm
|
||
|
{
|
||
|
public:
|
||
|
static vtkProbeFilter *New();
|
||
|
vtkTypeRevisionMacro(vtkProbeFilter,vtkDataSetAlgorithm);
|
||
|
void PrintSelf(ostream& os, vtkIndent indent);
|
||
|
|
||
|
// Description:
|
||
|
// Specify the point locations used to probe input. Any geometry
|
||
|
// can be used. Old style. Do not use unless for backwards compatibility.
|
||
|
void SetSource(vtkDataObject *source);
|
||
|
vtkDataObject *GetSource();
|
||
|
|
||
|
// Description:
|
||
|
// Specify the point locations used to probe input. Any geometry
|
||
|
// can be used. New style. Equivalent to SetInputConnection(1, algOutput).
|
||
|
void SetSourceConnection(vtkAlgorithmOutput* algOutput);
|
||
|
|
||
|
// Description:
|
||
|
// This flag is used only when a piece is requested to update. By default
|
||
|
// the flag is off. Because no spatial correspondence between input pieces
|
||
|
// and source pieces is known, all of the source has to be requested no
|
||
|
// matter what piece of the output is requested. When there is a spatial
|
||
|
// correspondence, the user/application can set this flag. This hint allows
|
||
|
// the breakup of the probe operation to be much more efficient. When piece
|
||
|
// m of n is requested for update by the user, then only n of m needs to
|
||
|
// be requested of the source.
|
||
|
vtkSetMacro(SpatialMatch, int);
|
||
|
vtkGetMacro(SpatialMatch, int);
|
||
|
vtkBooleanMacro(SpatialMatch, int);
|
||
|
|
||
|
// Description:
|
||
|
// Get the list of point ids in the output that contain attribute data
|
||
|
// interpolated from the source.
|
||
|
vtkGetObjectMacro(ValidPoints, vtkIdTypeArray);
|
||
|
|
||
|
protected:
|
||
|
vtkProbeFilter();
|
||
|
~vtkProbeFilter();
|
||
|
|
||
|
int SpatialMatch;
|
||
|
|
||
|
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
|
||
|
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
|
||
|
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
|
||
|
|
||
|
void Probe(vtkDataSet *input, vtkDataSet *source, vtkDataSet *output);
|
||
|
|
||
|
vtkIdTypeArray *ValidPoints;
|
||
|
private:
|
||
|
vtkProbeFilter(const vtkProbeFilter&); // Not implemented.
|
||
|
void operator=(const vtkProbeFilter&); // Not implemented.
|
||
|
};
|
||
|
|
||
|
#endif
|