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

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 =========================================================================*/
00060 #ifndef __vtkLoopSubdivisionFilter_h
00061 #define __vtkLoopSubdivisionFilter_h
00062 
00063 #include "vtkApproximatingSubdivisionFilter.h"
00064 
00065 class vtkPolyData;
00066 class vtkIntArray;
00067 class vtkPoints;
00068 class vtkIdList;
00069 
00070 class VTK_GRAPHICS_EXPORT vtkLoopSubdivisionFilter : public vtkApproximatingSubdivisionFilter
00071 {
00072 public:
00074 
00075   static vtkLoopSubdivisionFilter *New();
00076   vtkTypeRevisionMacro(vtkLoopSubdivisionFilter,vtkApproximatingSubdivisionFilter);
00078 
00079 protected:
00080   vtkLoopSubdivisionFilter () {};
00081   ~vtkLoopSubdivisionFilter () {};
00082 
00083   virtual void Execute();
00084   
00085   void GenerateSubdivisionPoints (vtkPolyData *inputDS, vtkIntArray *edgeData,
00086                                   vtkPoints *outputPts,
00087                                   vtkPointData *outputPD);
00088   void GenerateEvenStencil (vtkIdType p1, vtkPolyData *polys,
00089                             vtkIdList *stencilIds, double *weights);
00090   void GenerateOddStencil (vtkIdType p1, vtkIdType p2, vtkPolyData *polys,
00091                            vtkIdList *stencilIds, double *weights);
00092 
00093   void ComputeInputUpdateExtents(vtkDataObject *output);
00094 private:
00095   vtkLoopSubdivisionFilter(const vtkLoopSubdivisionFilter&);  // Not implemented.
00096   void operator=(const vtkLoopSubdivisionFilter&);  // Not implemented.
00097 };
00098 
00099 #endif
00100 
00101