|
| vtkButterflySubdivisionFilter () |
|
| ~vtkButterflySubdivisionFilter () |
|
| vtkInterpolatingSubdivisionFilter () |
|
| ~vtkInterpolatingSubdivisionFilter () |
|
int | RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
|
void | GenerateSubdivisionCells (vtkPolyData *inputDS, vtkIntArray *edgeData, vtkCellArray *outputPolys, vtkCellData *outputCD) |
|
int | FindEdge (vtkPolyData *mesh, vtkIdType cellId, vtkIdType p1, vtkIdType p2, vtkIntArray *edgeData, vtkIdList *cellIds) |
|
vtkIdType | InterpolatePosition (vtkPoints *inputPts, vtkPoints *outputPts, vtkIdList *stencil, double *weights) |
|
| vtkPolyDataAlgorithm () |
|
| ~vtkPolyDataAlgorithm () |
|
virtual int | RequestInformation (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) |
|
virtual int | FillOutputPortInformation (int port, vtkInformation *info) |
|
virtual int | FillInputPortInformation (int port, vtkInformation *info) |
|
virtual int | RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
|
virtual void | ExecuteData (vtkDataObject *output) |
|
virtual void | Execute () |
|
| vtkAlgorithm () |
|
| ~vtkAlgorithm () |
|
virtual void | SetNumberOfInputPorts (int n) |
|
virtual void | SetNumberOfOutputPorts (int n) |
|
int | InputPortIndexInRange (int index, const char *action) |
|
int | OutputPortIndexInRange (int index, const char *action) |
|
int | GetInputArrayAssociation (int idx, vtkInformationVector **inputVector) |
|
virtual vtkExecutive * | CreateDefaultExecutive () |
|
virtual void | ReportReferences (vtkGarbageCollector *) |
|
virtual void | SetNumberOfInputConnections (int port, int n) |
|
int | GetInputArrayAssociation (int idx, int connection, vtkInformationVector **inputVector) |
|
int | GetInputArrayAssociation (int idx, vtkDataObject *input) |
|
vtkDataArray * | GetInputArrayToProcess (int idx, vtkInformationVector **inputVector) |
|
vtkDataArray * | GetInputArrayToProcess (int idx, vtkInformationVector **inputVector, int &association) |
|
vtkDataArray * | GetInputArrayToProcess (int idx, int connection, vtkInformationVector **inputVector) |
|
vtkDataArray * | GetInputArrayToProcess (int idx, int connection, vtkInformationVector **inputVector, int &association) |
|
vtkDataArray * | GetInputArrayToProcess (int idx, vtkDataObject *input) |
|
vtkDataArray * | GetInputArrayToProcess (int idx, vtkDataObject *input, int &association) |
|
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkInformationVector **inputVector) |
|
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkInformationVector **inputVector, int &association) |
|
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, int connection, vtkInformationVector **inputVector) |
|
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, int connection, vtkInformationVector **inputVector, int &association) |
|
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkDataObject *input) |
|
vtkAbstractArray * | GetInputAbstractArrayToProcess (int idx, vtkDataObject *input, int &association) |
|
vtkInformation * | GetInputArrayFieldInformation (int idx, vtkInformationVector **inputVector) |
|
virtual void | SetNthInputConnection (int port, int index, vtkAlgorithmOutput *input) |
|
virtual void | SetErrorCode (unsigned long) |
|
| vtkObject () |
|
virtual | ~vtkObject () |
|
virtual void | RegisterInternal (vtkObjectBase *, int check) |
|
virtual void | UnRegisterInternal (vtkObjectBase *, int check) |
|
void | InternalGrabFocus (vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL) |
|
void | InternalReleaseFocus () |
|
| vtkObjectBase () |
|
virtual | ~vtkObjectBase () |
|
virtual void | CollectRevisions (ostream &os) |
|
| vtkObjectBase (const vtkObjectBase &) |
|
void | operator= (const vtkObjectBase &) |
|
typedef
vtkInterpolatingSubdivisionFilter | Superclass |
|
static
vtkButterflySubdivisionFilter * | New () |
|
static int | IsTypeOf (const char *type) |
|
static
vtkButterflySubdivisionFilter * | SafeDownCast (vtkObject *o) |
|
virtual const char * | GetClassName () |
|
virtual int | IsA (const char *type) |
|
generate a subdivision surface using the Butterfly Scheme
vtkButterflySubdivisionFilter is an interpolating subdivision scheme that creates four new triangles for each triangle in the mesh. The user can specify the NumberOfSubdivisions. This filter implements the 8-point butterfly scheme described in: Zorin, D., Schroder, P., and Sweldens, W., "Interpolating Subdivisions for Meshes with Arbitrary
Topology," Computer Graphics Proceedings, Annual Conference Series, 1996, ACM SIGGRAPH, pp.189-192. This scheme improves previous butterfly subdivisions with special treatment of vertices with valence other than 6.
Currently, the filter only operates on triangles. Users should use the vtkTriangleFilter to triangulate meshes that contain polygons or triangle strips.
The filter interpolates point data using the same scheme. New triangles created 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
- vtkInterpolatingSubdivisionFilter vtkLinearSubdivisionFilter
- Tests:
- vtkButterflySubdivisionFilter (Tests)
Definition at line 56 of file vtkButterflySubdivisionFilter.h.