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

vtkLoopSubdivisionFilter Class Reference

#include <vtkLoopSubdivisionFilter.h>

Inheritance diagram for vtkLoopSubdivisionFilter:

Inheritance graph
[legend]
Collaboration diagram for vtkLoopSubdivisionFilter:

Collaboration graph
[legend]
List of all members.

Detailed Description

generate a subdivision surface using the Loop Scheme

vtkLoopSubdivisionFilter is an approximating subdivision scheme that creates four new triangles for each triangle in the mesh. The user can specify the NumberOfSubdivisions. Loop's subdivision scheme is described in: Loop, C., "Smooth Subdivision surfaces based on triangles,", Masters Thesis, University of Utah, August 1987. For a nice summary of the technique see, Hoppe, H., et. al, "Piecewise Smooth Surface Reconstruction,:, Proceedings of Siggraph 94 (Orlando, Florida, July 24-29, 1994). In COmputer Graphics Proceedings, Annual COnference Series, 1994, ACM SIGGRAPH, pp. 295-302.

The filter only operates on triangles. Users should use the vtkTriangleFilter to triangulate meshes that contain polygons or triangle strips.

The filter approximates point data using the same scheme. New triangles create at a subdivision step will have the cell data of their parent cell.

Thanks:
This work was supported by PHS Research Grant No. 1 P41 RR13218-01 from the National Center for Research Resources.
See also:
vtkApproximatingSubdivisionFilter
Tests:
vtkLoopSubdivisionFilter (Tests)

Definition at line 58 of file vtkLoopSubdivisionFilter.h.
typedef vtkApproximatingSubdivisionFilter Superclass
virtual const char * GetClassName ()
virtual int IsA (const char *type)
static vtkLoopSubdivisionFilterNew ()
static int IsTypeOf (const char *type)
static vtkLoopSubdivisionFilterSafeDownCast (vtkObject *o)

Protected Member Functions

 vtkLoopSubdivisionFilter ()
 ~vtkLoopSubdivisionFilter ()
virtual int RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
void GenerateSubdivisionPoints (vtkPolyData *inputDS, vtkIntArray *edgeData, vtkPoints *outputPts, vtkPointData *outputPD)
void GenerateEvenStencil (vtkIdType p1, vtkPolyData *polys, vtkIdList *stencilIds, double *weights)
void GenerateOddStencil (vtkIdType p1, vtkIdType p2, vtkPolyData *polys, vtkIdList *stencilIds, double *weights)
virtual int RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *)


Member Typedef Documentation

typedef vtkApproximatingSubdivisionFilter vtkLoopSubdivisionFilter::Superclass
 

Reimplemented from vtkApproximatingSubdivisionFilter.

Definition at line 64 of file vtkLoopSubdivisionFilter.h.


Constructor & Destructor Documentation

vtkLoopSubdivisionFilter::vtkLoopSubdivisionFilter  )  [inline, protected]
 

Definition at line 68 of file vtkLoopSubdivisionFilter.h.

vtkLoopSubdivisionFilter::~vtkLoopSubdivisionFilter  )  [inline, protected]
 

Definition at line 69 of file vtkLoopSubdivisionFilter.h.


Member Function Documentation

static vtkLoopSubdivisionFilter* vtkLoopSubdivisionFilter::New  )  [static]
 

Construct object with NumberOfSubdivisions set to 1.

Reimplemented from vtkPolyDataAlgorithm.

virtual const char* vtkLoopSubdivisionFilter::GetClassName  )  [virtual]
 

Reimplemented from vtkApproximatingSubdivisionFilter.

static int vtkLoopSubdivisionFilter::IsTypeOf const char *  type  )  [static]
 

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkApproximatingSubdivisionFilter.

virtual int vtkLoopSubdivisionFilter::IsA const char *  type  )  [virtual]
 

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h.

Reimplemented from vtkApproximatingSubdivisionFilter.

static vtkLoopSubdivisionFilter* vtkLoopSubdivisionFilter::SafeDownCast vtkObject o  )  [static]
 

Reimplemented from vtkApproximatingSubdivisionFilter.

virtual int vtkLoopSubdivisionFilter::RequestData vtkInformation ,
vtkInformationVector **  ,
vtkInformationVector
[protected, virtual]
 

This is called by the superclass. This is the method you should override.

Reimplemented from vtkApproximatingSubdivisionFilter.

void vtkLoopSubdivisionFilter::GenerateSubdivisionPoints vtkPolyData inputDS,
vtkIntArray edgeData,
vtkPoints outputPts,
vtkPointData outputPD
[protected, virtual]
 

Implements vtkApproximatingSubdivisionFilter.

void vtkLoopSubdivisionFilter::GenerateEvenStencil vtkIdType  p1,
vtkPolyData polys,
vtkIdList stencilIds,
double *  weights
[protected]
 

void vtkLoopSubdivisionFilter::GenerateOddStencil vtkIdType  p1,
vtkIdType  p2,
vtkPolyData polys,
vtkIdList stencilIds,
double *  weights
[protected]
 

virtual int vtkLoopSubdivisionFilter::RequestUpdateExtent vtkInformation ,
vtkInformationVector **  ,
vtkInformationVector
[protected, virtual]
 

This is called by the superclass. This is the method you should override.

Reimplemented from vtkPolyDataAlgorithm.


The documentation for this class was generated from the following file:
Generated on Mon Jan 21 23:59:32 2008 for VTK by  doxygen 1.4.3-20050530