Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# Graphics/vtkInterpolatingSubdivisionFilter.h

Go to the documentation of this file.

    00001 /*=========================================================================
    00002
    00003   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkInterpolatingSubdivisionFilter.h,v $
    00005   Language:  C++
    00006
    00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
    00008   All rights reserved.
    00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
    00010
    00011      This software is distributed WITHOUT ANY WARRANTY; without even
    00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
    00013      PURPOSE.  See the above copyright notice for more information.
    00014
    00015 =========================================================================*/
    00045 #ifndef __vtkInterpolatingSubdivisionFilter_h
    00046 #define __vtkInterpolatingSubdivisionFilter_h
    00047
    00048 #include "vtkPolyDataToPolyDataFilter.h"
    00049
    00050 class vtkCellArray;
    00051 class vtkCellData;
    00052 class vtkIdList;
    00053 class vtkIntArray;
    00054 class vtkPointData;
    00055 class vtkPoints;
    00056 class vtkPolyData;
    00057
    00058 class VTK_GRAPHICS_EXPORT vtkInterpolatingSubdivisionFilter : public vtkPolyDataToPolyDataFilter
    00059 {
    00060 public:
    00061   vtkTypeRevisionMacro(vtkInterpolatingSubdivisionFilter,vtkPolyDataToPolyDataFilter);
    00062   void PrintSelf(ostream& os, vtkIndent indent);
    00063
    00065
    00066   vtkSetMacro(NumberOfSubdivisions,int);
    00067   vtkGetMacro(NumberOfSubdivisions,int);
    00069
    00070 protected:
    00071   vtkInterpolatingSubdivisionFilter();
    00072   ~vtkInterpolatingSubdivisionFilter() {};
    00073
    00074   void Execute();
    00075   virtual void GenerateSubdivisionPoints (vtkPolyData *inputDS, vtkIntArray *edgeData, vtkPoints *outputPts, vtkPointData *outputPD) = 0;
    00076   void GenerateSubdivisionCells (vtkPolyData *inputDS, vtkIntArray *edgeData, vtkCellArray *outputPolys, vtkCellData *outputCD);
    00077   int FindEdge (vtkPolyData *mesh, vtkIdType cellId, vtkIdType p1,
    00078                 vtkIdType p2, vtkIntArray *edgeData, vtkIdList *cellIds);
    00079   vtkIdType InterpolatePosition (vtkPoints *inputPts, vtkPoints *outputPts,
    00080                                  vtkIdList *stencil, float *weights);
    00081   int NumberOfSubdivisions;
    00082
    00083 private:
    00084   vtkInterpolatingSubdivisionFilter(const vtkInterpolatingSubdivisionFilter&);  // Not implemented.
    00085   void operator=(const vtkInterpolatingSubdivisionFilter&);  // Not implemented.
    00086 };
    00087
    00088 #endif
    00089
    00090