VTK
dox/Filters/Modeling/vtkLoopSubdivisionFilter.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkLoopSubdivisionFilter.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00048 #ifndef __vtkLoopSubdivisionFilter_h
00049 #define __vtkLoopSubdivisionFilter_h
00050 
00051 #include "vtkFiltersModelingModule.h" // For export macro
00052 #include "vtkApproximatingSubdivisionFilter.h"
00053 
00054 class vtkPolyData;
00055 class vtkIntArray;
00056 class vtkPoints;
00057 class vtkIdList;
00058 
00059 class VTKFILTERSMODELING_EXPORT vtkLoopSubdivisionFilter : public vtkApproximatingSubdivisionFilter
00060 {
00061 public:
00063 
00064   static vtkLoopSubdivisionFilter *New();
00065   vtkTypeMacro(vtkLoopSubdivisionFilter,vtkApproximatingSubdivisionFilter);
00067 
00068 protected:
00069   vtkLoopSubdivisionFilter () {};
00070   ~vtkLoopSubdivisionFilter () {};
00071 
00072   virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00073 
00074   void GenerateSubdivisionPoints (vtkPolyData *inputDS, vtkIntArray *edgeData,
00075                                   vtkPoints *outputPts,
00076                                   vtkPointData *outputPD);
00077   void GenerateEvenStencil (vtkIdType p1, vtkPolyData *polys,
00078                             vtkIdList *stencilIds, double *weights);
00079   void GenerateOddStencil (vtkIdType p1, vtkIdType p2, vtkPolyData *polys,
00080                            vtkIdList *stencilIds, double *weights);
00081 
00082   virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00083 
00084 private:
00085   vtkLoopSubdivisionFilter(const vtkLoopSubdivisionFilter&);  // Not implemented.
00086   void operator=(const vtkLoopSubdivisionFilter&);  // Not implemented.
00087 };
00088 
00089 #endif
00090 // VTK-HeaderTest-Exclude: vtkLoopSubdivisionFilter.h