|
| virtual int | IsA (const char *type) |
| |
| vtkLoopSubdivisionFilter * | NewInstance () const |
| |
| vtkApproximatingSubdivisionFilter * | NewInstance () const |
| |
| void | PrintSelf (ostream &os, vtkIndent indent) |
| |
| virtual void | SetNumberOfSubdivisions (int) |
| |
| virtual int | GetNumberOfSubdivisions () |
| |
| vtkPolyDataAlgorithm * | NewInstance () const |
| |
| vtkPolyData * | GetOutput () |
| |
| vtkPolyData * | GetOutput (int) |
| |
| virtual void | SetOutput (vtkDataObject *d) |
| |
| virtual int | ProcessRequest (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
| |
| vtkDataObject * | GetInput () |
| |
| vtkDataObject * | GetInput (int port) |
| |
| vtkPolyData * | GetPolyDataInput (int port) |
| |
| void | SetInputData (vtkDataObject *) |
| |
| void | SetInputData (int, vtkDataObject *) |
| |
| void | AddInputData (vtkDataObject *) |
| |
| void | AddInputData (int, vtkDataObject *) |
| |
| vtkAlgorithm * | NewInstance () const |
| |
| int | HasExecutive () |
| |
| vtkExecutive * | GetExecutive () |
| |
| virtual void | SetExecutive (vtkExecutive *executive) |
| |
| int | ProcessRequest (vtkInformation *request, vtkCollection *inInfo, vtkInformationVector *outInfo) |
| |
| virtual int | ComputePipelineMTime (vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, int requestFromOutputPort, unsigned long *mtime) |
| |
| virtual int | ModifyRequest (vtkInformation *request, int when) |
| |
| vtkInformation * | GetInputPortInformation (int port) |
| |
| vtkInformation * | GetOutputPortInformation (int port) |
| |
| virtual vtkInformation * | GetInformation () |
| |
| virtual void | SetInformation (vtkInformation *) |
| |
| int | GetNumberOfInputPorts () |
| |
| int | GetNumberOfOutputPorts () |
| |
| virtual void | Register (vtkObjectBase *o) |
| |
| virtual void | UnRegister (vtkObjectBase *o) |
| |
| virtual void | SetAbortExecute (int) |
| |
| virtual int | GetAbortExecute () |
| |
| virtual void | AbortExecuteOn () |
| |
| virtual void | AbortExecuteOff () |
| |
| virtual void | SetProgress (double) |
| |
| virtual double | GetProgress () |
| |
| void | UpdateProgress (double amount) |
| |
| void | SetProgressText (const char *ptext) |
| |
| virtual char * | GetProgressText () |
| |
| virtual unsigned long | GetErrorCode () |
| |
| virtual void | SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, const char *name) |
| |
| virtual void | SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, int fieldAttributeType) |
| |
| virtual void | SetInputArrayToProcess (int idx, vtkInformation *info) |
| |
| virtual void | SetInputArrayToProcess (int idx, int port, int connection, const char *fieldAssociation, const char *attributeTypeorName) |
| |
| vtkInformation * | GetInputArrayInformation (int idx) |
| |
| void | RemoveAllInputs () |
| |
| vtkDataObject * | GetOutputDataObject (int port) |
| |
| vtkDataObject * | GetInputDataObject (int port, int connection) |
| |
| virtual void | SetInputConnection (int port, vtkAlgorithmOutput *input) |
| |
| virtual void | SetInputConnection (vtkAlgorithmOutput *input) |
| |
| virtual void | AddInputConnection (int port, vtkAlgorithmOutput *input) |
| |
| virtual void | AddInputConnection (vtkAlgorithmOutput *input) |
| |
| virtual void | RemoveInputConnection (int port, vtkAlgorithmOutput *input) |
| |
| virtual void | RemoveInputConnection (int port, int idx) |
| |
| virtual void | RemoveAllInputConnections (int port) |
| |
| virtual void | SetInputDataObject (int port, vtkDataObject *data) |
| |
| virtual void | SetInputDataObject (vtkDataObject *data) |
| |
| virtual void | AddInputDataObject (int port, vtkDataObject *data) |
| |
| virtual void | AddInputDataObject (vtkDataObject *data) |
| |
| vtkAlgorithmOutput * | GetOutputPort (int index) |
| |
| vtkAlgorithmOutput * | GetOutputPort () |
| |
| int | GetNumberOfInputConnections (int port) |
| |
| int | GetTotalNumberOfInputConnections () |
| |
| vtkAlgorithmOutput * | GetInputConnection (int port, int index) |
| |
| vtkAlgorithm * | GetInputAlgorithm (int port, int index, int &algPort) |
| |
| vtkAlgorithm * | GetInputAlgorithm (int port, int index) |
| |
| vtkAlgorithm * | GetInputAlgorithm () |
| |
| vtkExecutive * | GetInputExecutive (int port, int index) |
| |
| vtkExecutive * | GetInputExecutive () |
| |
| vtkInformation * | GetInputInformation (int port, int index) |
| |
| vtkInformation * | GetInputInformation () |
| |
| vtkInformation * | GetOutputInformation (int port) |
| |
| virtual void | Update (int port) |
| |
| virtual void | Update () |
| |
| virtual void | UpdateInformation () |
| |
| virtual void | UpdateDataObject () |
| |
| virtual void | PropagateUpdateExtent () |
| |
| virtual void | UpdateWholeExtent () |
| |
| void | ConvertTotalInputToPortConnection (int ind, int &port, int &conn) |
| |
| virtual void | SetReleaseDataFlag (int) |
| |
| virtual int | GetReleaseDataFlag () |
| |
| void | ReleaseDataFlagOn () |
| |
| void | ReleaseDataFlagOff () |
| |
| int | UpdateExtentIsEmpty (vtkInformation *pinfo, vtkDataObject *output) |
| |
| int | UpdateExtentIsEmpty (vtkInformation *pinfo, int extentType) |
| |
| int | SetUpdateExtentToWholeExtent (int port) |
| |
| int | SetUpdateExtentToWholeExtent () |
| |
| void | SetUpdateExtent (int port, int piece, int numPieces, int ghostLevel) |
| |
| void | SetUpdateExtent (int piece, int numPieces, int ghostLevel) |
| |
| void | SetUpdateExtent (int port, int extent[6]) |
| |
| void | SetUpdateExtent (int extent[6]) |
| |
| int * | GetUpdateExtent () |
| |
| int * | GetUpdateExtent (int port) |
| |
| void | GetUpdateExtent (int &x0, int &x1, int &y0, int &y1, int &z0, int &z1) |
| |
| void | GetUpdateExtent (int port, int &x0, int &x1, int &y0, int &y1, int &z0, int &z1) |
| |
| void | GetUpdateExtent (int extent[6]) |
| |
| void | GetUpdateExtent (int port, int extent[6]) |
| |
| int | GetUpdatePiece () |
| |
| int | GetUpdatePiece (int port) |
| |
| int | GetUpdateNumberOfPieces () |
| |
| int | GetUpdateNumberOfPieces (int port) |
| |
| int | GetUpdateGhostLevel () |
| |
| int | GetUpdateGhostLevel (int port) |
| |
| void | SetProgressObserver (vtkProgressObserver *) |
| |
| virtual vtkProgressObserver * | GetProgressObserver () |
| |
| vtkObject * | NewInstance () const |
| |
| virtual void | DebugOn () |
| |
| virtual void | DebugOff () |
| |
| bool | GetDebug () |
| |
| void | SetDebug (bool debugFlag) |
| |
| virtual void | Modified () |
| |
| virtual unsigned long | GetMTime () |
| |
| unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
| |
| unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
| |
| vtkCommand * | GetCommand (unsigned long tag) |
| |
| void | RemoveObserver (vtkCommand *) |
| |
| void | RemoveObservers (unsigned long event, vtkCommand *) |
| |
| void | RemoveObservers (const char *event, vtkCommand *) |
| |
| int | HasObserver (unsigned long event, vtkCommand *) |
| |
| int | HasObserver (const char *event, vtkCommand *) |
| |
| void | RemoveObserver (unsigned long tag) |
| |
| void | RemoveObservers (unsigned long event) |
| |
| void | RemoveObservers (const char *event) |
| |
| void | RemoveAllObservers () |
| |
| int | HasObserver (unsigned long event) |
| |
| int | HasObserver (const char *event) |
| |
| template<class U , class T > |
| unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
| |
| template<class U , class T > |
| unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
| |
| template<class U , class T > |
| unsigned long | AddObserver (unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
| |
| int | InvokeEvent (unsigned long event, void *callData) |
| |
| int | InvokeEvent (const char *event, void *callData) |
| |
| int | InvokeEvent (unsigned long event) |
| |
| int | InvokeEvent (const char *event) |
| |
| const char * | GetClassName () const |
| |
| virtual void | Delete () |
| |
| virtual void | FastDelete () |
| |
| void | Print (ostream &os) |
| |
| virtual void | PrintHeader (ostream &os, vtkIndent indent) |
| |
| virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
| |
| int | GetReferenceCount () |
| |
| void | SetReferenceCount (int) |
| |
| void | PrintRevisions (ostream &) |
| |
|
| virtual vtkObjectBase * | NewInstanceInternal () const |
| |
| | vtkLoopSubdivisionFilter () |
| |
| | ~vtkLoopSubdivisionFilter () |
| |
| virtual int | RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
| |
| int | 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 *) |
| |
| | vtkApproximatingSubdivisionFilter () |
| |
| | ~vtkApproximatingSubdivisionFilter () |
| |
| 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) |
| |
| | 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) |
| |
| 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 vtkExecutive * | CreateDefaultExecutive () |
| |
| virtual void | SetErrorCode (unsigned long) |
| |
| virtual void | ReportReferences (vtkGarbageCollector *) |
| |
| virtual void | SetNthInputConnection (int port, int index, vtkAlgorithmOutput *input) |
| |
| virtual void | SetNumberOfInputConnections (int port, int n) |
| |
| void | SetInputDataInternal (int port, vtkDataObject *input) |
| |
| void | AddInputDataInternal (int port, vtkDataObject *input) |
| |
| | 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 &) |
| |
| | vtkObjectBase (const vtkObjectBase &) |
| |
| void | operator= (const vtkObjectBase &) |
| |
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 59 of file vtkLoopSubdivisionFilter.h.