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

Graphics/vtkLoopSubdivisionFilter.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkLoopSubdivisionFilter.h,v $
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 "vtkApproximatingSubdivisionFilter.h"
00052 
00053 class vtkPolyData;
00054 class vtkIntArray;
00055 class vtkPoints;
00056 class vtkIdList;
00057 
00058 class VTK_GRAPHICS_EXPORT vtkLoopSubdivisionFilter : public vtkApproximatingSubdivisionFilter
00059 {
00060 public:
00062 
00063   static vtkLoopSubdivisionFilter *New();
00064   vtkTypeRevisionMacro(vtkLoopSubdivisionFilter,vtkApproximatingSubdivisionFilter);
00066 
00067 protected:
00068   vtkLoopSubdivisionFilter () {};
00069   ~vtkLoopSubdivisionFilter () {};
00070 
00071   void GenerateSubdivisionPoints (vtkPolyData *inputDS, vtkIntArray *edgeData,
00072                                   vtkPoints *outputPts,
00073                                   vtkPointData *outputPD);
00074   void GenerateEvenStencil (vtkIdType p1, vtkPolyData *polys,
00075                             vtkIdList *stencilIds, double *weights);
00076   void GenerateOddStencil (vtkIdType p1, vtkIdType p2, vtkPolyData *polys,
00077                            vtkIdList *stencilIds, double *weights);
00078 
00079   void ComputeInputUpdateExtents(vtkDataObject *output);
00080 private:
00081   vtkLoopSubdivisionFilter(const vtkLoopSubdivisionFilter&);  // Not implemented.
00082   void operator=(const vtkLoopSubdivisionFilter&);  // Not implemented.
00083 };
00084 
00085 #endif
00086 
00087