00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00040 #ifndef __vtkProbeFilter_h
00041 #define __vtkProbeFilter_h
00042
00043 #include "vtkDataSetAlgorithm.h"
00044 #include "vtkDataSetAttributes.h"
00045
00046 class vtkIdTypeArray;
00047 class vtkCharArray;
00048 class vtkMaskPoints;
00049
00050 class VTK_GRAPHICS_EXPORT vtkProbeFilter : public vtkDataSetAlgorithm
00051 {
00052 public:
00053 static vtkProbeFilter *New();
00054 vtkTypeRevisionMacro(vtkProbeFilter,vtkDataSetAlgorithm);
00055 void PrintSelf(ostream& os, vtkIndent indent);
00056
00058
00060 void SetSource(vtkDataObject *source);
00061 vtkDataObject *GetSource();
00063
00066 void SetSourceConnection(vtkAlgorithmOutput* algOutput);
00067
00069
00077 vtkSetMacro(SpatialMatch, int);
00078 vtkGetMacro(SpatialMatch, int);
00079 vtkBooleanMacro(SpatialMatch, int);
00081
00083
00085 vtkGetObjectMacro(ValidPoints, vtkIdTypeArray);
00087
00089
00092 vtkSetStringMacro(ValidPointMaskArrayName)
00093 vtkGetStringMacro(ValidPointMaskArrayName)
00095
00096
00097 protected:
00098 vtkProbeFilter();
00099 ~vtkProbeFilter();
00100
00101 int SpatialMatch;
00102
00103 virtual int RequestData(vtkInformation *, vtkInformationVector **,
00104 vtkInformationVector *);
00105 virtual int RequestInformation(vtkInformation *, vtkInformationVector **,
00106 vtkInformationVector *);
00107 virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **,
00108 vtkInformationVector *);
00109
00111 void Probe(vtkDataSet *input, vtkDataSet *source, vtkDataSet *output);
00112
00115 void BuildFieldList(vtkDataSet* source);
00116
00119 void InitializeForProbing(vtkDataSet *input, vtkDataSet *output);
00120
00122
00125 void ProbeEmptyPoints(vtkDataSet *input, int srcIdx, vtkDataSet *source,
00126 vtkDataSet *output);
00128
00129 char* ValidPointMaskArrayName;
00130 vtkIdTypeArray *ValidPoints;
00131 vtkCharArray* MaskPoints;
00132 int NumberOfValidPoints;
00133
00134 vtkDataSetAttributes::FieldList* CellList;
00135 vtkDataSetAttributes::FieldList* PointList;
00136 private:
00137 vtkProbeFilter(const vtkProbeFilter&);
00138 void operator=(const vtkProbeFilter&);
00139
00140 class vtkVectorOfArrays;
00141 vtkVectorOfArrays* CellArrays;
00142
00143 };
00144
00145 #endif