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

# vtkLoopSubdivisionFilter Class Reference

`#include <vtkLoopSubdivisionFilter.h>`

Inheritance diagram for vtkLoopSubdivisionFilter:

[legend]
Collaboration diagram for vtkLoopSubdivisionFilter:

[legend]
List of all members.

## Detailed Description

generate a subdivision surface using the Loop Scheme

Date:
  2002/11/03 22:51:55

Revision:
  1.15

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

Created by:
  - Lorensen, Bill

CVS contributions (if > 5%):
  - Lorensen, Bill (75%)
  - Henderson, Amy (8%)
  - Cedilnik, Andy (6%)

CVS logs (CVSweb):
  - .`h` (`/Graphics/vtkLoopSubdivisionFilter.h)`
  - .`cxx` (`/Graphics/vtkLoopSubdivisionFilter.cxx)`

Tests:
  vtkLoopSubdivisionFilter (Tests)

Definition at line 74 of file vtkLoopSubdivisionFilter.h.

## [NOHEADER]

typedef vtkApproximatingSubdivisionFilter | Superclass
virtual const char * | GetClassName ()
virtual int | IsA (const char *type)
vtkLoopSubdivisionFilter * | New ()
int | IsTypeOf (const char *type)
vtkLoopSubdivisionFilter * | SafeDownCast (vtkObject *o)

## Protected Methods

| vtkLoopSubdivisionFilter ()
| ~vtkLoopSubdivisionFilter ()
void | GenerateSubdivisionPoints (vtkPolyData *inputDS, vtkIntArray *edgeData, vtkPoints *outputPts, vtkPointData *outputPD)
void | GenerateEvenStencil (vtkIdType p1, vtkPolyData *polys, vtkIdList *stencilIds, float *weights)
void | GenerateOddStencil (vtkIdType p1, vtkIdType p2, vtkPolyData *polys, vtkIdList *stencilIds, float *weights)
void | ComputeInputUpdateExtents (vtkDataObject *output)

## Member Typedef Documentation

typedef vtkApproximatingSubdivisionFilter vtkLoopSubdivisionFilter::Superclass

| Reimplemented from vtkApproximatingSubdivisionFilter. Definition at line 80 of file vtkLoopSubdivisionFilter.h.

## Constructor & Destructor Documentation

vtkLoopSubdivisionFilter::vtkLoopSubdivisionFilter | ( |  | ) | `[inline, protected]`

| Definition at line 84 of file vtkLoopSubdivisionFilter.h.

vtkLoopSubdivisionFilter::~vtkLoopSubdivisionFilter | ( |  | ) | `[inline, protected]`

| Definition at line 85 of file vtkLoopSubdivisionFilter.h.

## Member Function Documentation

vtkLoopSubdivisionFilter* vtkLoopSubdivisionFilter::New | ( |  | ) | `[static]`

| Construct object with NumberOfSubdivisions set to 1. Reimplemented from vtkObject.

virtual const char* vtkLoopSubdivisionFilter::GetClassName | ( |  | ) | `[virtual]`

| Reimplemented from vtkApproximatingSubdivisionFilter.

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.

vtkLoopSubdivisionFilter* vtkLoopSubdivisionFilter::SafeDownCast | ( | vtkObject * | o | ) | `[static]`

| 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,
|  | float * | weights
| ) | `[protected]`

void vtkLoopSubdivisionFilter::GenerateOddStencil | ( | vtkIdType | p1,
|  | vtkIdType | p2,
|  | vtkPolyData * | polys,
|  | vtkIdList * | stencilIds,
|  | float * | weights
| ) | `[protected]`

void vtkLoopSubdivisionFilter::ComputeInputUpdateExtents | ( | vtkDataObject * | output | ) | `[protected, virtual]`

| What is the input update extent that is required to produce the desired output? By default, the whole input is always required but this is overridden in many subclasses. Reimplemented from vtkPolyDataSource.

The documentation for this class was generated from the following file:

- Graphics/vtkLoopSubdivisionFilter.h