1 /*=========================================================================
3 Program: Visualization Toolkit
4 Module: $RCSfile: vtkPointSetToPointSetFilter.h,v $
6 Date: $Date: 2002/10/04 20:43:44 $
7 Version: $Revision: 1.49 $
9 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
11 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
13 This software is distributed WITHOUT ANY WARRANTY; without even
14 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 PURPOSE. See the above copyright notice for more information.
17 =========================================================================*/
18 // .NAME vtkPointSetToPointSetFilter - abstract filter class
19 // .SECTION Description
20 // vtkPointSetToPointSetFilter is an abstract filter class whose subclasses
21 // take as input a point set and generates a point set on output. At a
22 // minimum, the concrete subclasses of vtkPointSetToPointSetFilter modify
23 // their point coordinates. They never modify their topological form,
26 // This is an abstract filter type. What that means is that the output of the
27 // filter is an abstract type (i.e., vtkPointSet), no matter what the input
28 // of the filter is. This can cause problems connecting together filters due
29 // to the change in dataset type. (For example, in a series of filters
30 // processing vtkPolyData, when a vtkPointSetToPointSetFilter or subclass is
31 // introduced into the pipeline, if the filter downstream of it takes
32 // vtkPolyData as input, the pipeline connection cannot be made.) To get
33 // around this problem, use one of the convenience methods to return a
34 // concrete type (e.g., vtkGetPolyDataOutput(), GetStructuredGridOutput(),
38 // vtkTransformFilter vtkWarpScalar vtkWarpTo vtkWarpVector
40 #ifndef __vtkPointSetToPointSetFilter_h
41 #define __vtkPointSetToPointSetFilter_h
43 #include "vtkPointSetSource.h"
46 class vtkStructuredGrid;
47 class vtkUnstructuredGrid;
49 class VTK_FILTERING_EXPORT vtkPointSetToPointSetFilter : public vtkPointSetSource
52 vtkTypeRevisionMacro(vtkPointSetToPointSetFilter,vtkPointSetSource);
53 void PrintSelf(ostream& os, vtkIndent indent);
56 // Specify the input data or filter.
57 void SetInput(vtkPointSet *input);
60 // Get the input data or filter.
61 vtkPointSet *GetInput();
64 // Get the output of this filter. If output is NULL, then input hasn't been
65 // set, which is necessary for abstract filter objects.
66 vtkPointSet *GetOutput();
67 vtkPointSet *GetOutput(int idx)
68 {return (vtkPointSet *) this->vtkPointSetSource::GetOutput(idx); };
71 // Get the output as vtkPolyData. Performs run-time checking.
72 vtkPolyData *GetPolyDataOutput();
75 // Get the output as vtkStructuredGrid. Performs run-time checking.
76 vtkStructuredGrid *GetStructuredGridOutput();
79 // Get the output as vtkUnstructuredGrid. Performs run-time checking.
80 vtkUnstructuredGrid *GetUnstructuredGridOutput();
83 // By default copy the output update extent to the input
84 virtual void ComputeInputUpdateExtents( vtkDataObject *output );
87 vtkPointSetToPointSetFilter();
88 ~vtkPointSetToPointSetFilter();
91 vtkPointSetToPointSetFilter(const vtkPointSetToPointSetFilter&); // Not implemented.
92 void operator=(const vtkPointSetToPointSetFilter&); // Not implemented.