VTK
Public Member Functions | Protected Member Functions | Protected Attributes
vtkDeformPointSet Class Reference

use a control polyhedron to deform an input vtkPointSet More...

#include <vtkDeformPointSet.h>

Inheritance diagram for vtkDeformPointSet:
Inheritance graph
[legend]
Collaboration diagram for vtkDeformPointSet:
Collaboration graph
[legend]

List of all members.

Public Member Functions

void SetControlMeshConnection (vtkAlgorithmOutput *algOutput)
void SetControlMeshData (vtkPolyData *controlMesh)
vtkPolyDataGetControlMeshData ()
virtual void SetInitializeWeights (int)
virtual int GetInitializeWeights ()
virtual void InitializeWeightsOn ()
virtual void InitializeWeightsOff ()

Protected Member Functions

 vtkDeformPointSet ()
 ~vtkDeformPointSet ()
virtual int RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *)

Protected Attributes

int InitializeWeights
vtkIdType InitialNumberOfControlMeshPoints
vtkIdType InitialNumberOfControlMeshCells
vtkIdType InitialNumberOfPointSetPoints
vtkIdType InitialNumberOfPointSetCells
vtkSmartPointer< vtkDoubleArrayWeights
typedef vtkPointSetAlgorithm Superclass
static vtkDeformPointSetNew ()
static int IsTypeOf (const char *type)
static vtkDeformPointSetSafeDownCast (vtkObjectBase *o)
virtual int IsA (const char *type)
vtkDeformPointSetNewInstance () const
void PrintSelf (ostream &os, vtkIndent indent)
virtual vtkObjectBaseNewInstanceInternal () const

Detailed Description

use a control polyhedron to deform an input vtkPointSet

vtkDeformPointSet is a filter that uses a control polyhdron to deform an input dataset of type vtkPointSet. The control polyhedron (or mesh) must be a closed, manifold surface.

The filter executes as follows. In initial pipeline execution, the control mesh and input vtkPointSet are assumed in undeformed position, and an initial set of interpolation weights are computed for each point in the vtkPointSet (one interpolation weight value for each point in the control mesh). The filter then stores these interpolation weights after filter execution. The next time the filter executes, assuming that the number of points/cells in the control mesh and vtkPointSet have not changed, the points in the vtkPointSet are recomputed based on the original weights. Hence if the control mesh has been deformed, it will in turn cause deformation in the vtkPointSet. This can be used to animate or edit the geometry of the vtkPointSet.

Warning:
Note that a set of interpolation weights per point in the vtkPointSet is maintained. The number of interpolation weights is the number of points in the control mesh. Hence keep the control mesh small in size or a n^2 data explostion will occur.
The filter maintains interpolation weights between executions (after the initial execution pass computes the interpolation weights). You can explicitly cause the filter to reinitialize by setting the InitializeWeights boolean to true. By default, the filter will execute and then set InitializeWeights to false.
This work was motivated by the work of Tao Ju et al in "Mesh Value Coordinates for Closed Triangular Meshes." The MVC algorithm is currently used to generate interpolation weights. However, in the future this filter may be extended to provide other interpolation functions.
A final note: point data and cell data are passed from the input to the output. Only the point coordinates of the input vtkPointSet are modified.
See also:
vtkMeanValueCoordinatesInterpolator vtkProbePolyhedron vtkPolyhedron
Tests:
vtkDeformPointSet (Tests)

Definition at line 76 of file vtkDeformPointSet.h.


Member Typedef Documentation

Standard methods for instantiable (i.e., concrete) class.

Reimplemented from vtkPointSetAlgorithm.

Definition at line 82 of file vtkDeformPointSet.h.


Constructor & Destructor Documentation


Member Function Documentation

Standard methods for instantiable (i.e., concrete) class.

Reimplemented from vtkPointSetAlgorithm.

static int vtkDeformPointSet::IsTypeOf ( const char *  type) [static]

Standard methods for instantiable (i.e., concrete) class.

Reimplemented from vtkPointSetAlgorithm.

virtual int vtkDeformPointSet::IsA ( const char *  type) [virtual]

Standard methods for instantiable (i.e., concrete) class.

Reimplemented from vtkPointSetAlgorithm.

Standard methods for instantiable (i.e., concrete) class.

Reimplemented from vtkPointSetAlgorithm.

virtual vtkObjectBase* vtkDeformPointSet::NewInstanceInternal ( ) const [protected, virtual]

Standard methods for instantiable (i.e., concrete) class.

Reimplemented from vtkPointSetAlgorithm.

Standard methods for instantiable (i.e., concrete) class.

Reimplemented from vtkPointSetAlgorithm.

void vtkDeformPointSet::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [virtual]

Standard methods for instantiable (i.e., concrete) class.

Reimplemented from vtkPointSetAlgorithm.

Specify the control mesh to deform the input vtkPointSet. The control mesh must be a closed, non-self-intersecting, manifold mesh.

Specify the control mesh to deform the input vtkPointSet. The control mesh must be a closed, non-self-intersecting, manifold mesh.

Specify the point locations used to probe input. Any geometry can be used. New style. Equivalent to SetInputConnection(1, algOutput).

virtual void vtkDeformPointSet::SetInitializeWeights ( int  ) [virtual]

Specify whether to regenerate interpolation weights or not. Initially the filter will reexecute no matter what this flag is set to (initial weights must be computed). Also, this flag is ignored if the number of input points/cells or the number of control mesh points/cells changes between executions. Thus flag is used to force reexecution and recomputation of weights.

Specify whether to regenerate interpolation weights or not. Initially the filter will reexecute no matter what this flag is set to (initial weights must be computed). Also, this flag is ignored if the number of input points/cells or the number of control mesh points/cells changes between executions. Thus flag is used to force reexecution and recomputation of weights.

virtual void vtkDeformPointSet::InitializeWeightsOn ( ) [virtual]

Specify whether to regenerate interpolation weights or not. Initially the filter will reexecute no matter what this flag is set to (initial weights must be computed). Also, this flag is ignored if the number of input points/cells or the number of control mesh points/cells changes between executions. Thus flag is used to force reexecution and recomputation of weights.

virtual void vtkDeformPointSet::InitializeWeightsOff ( ) [virtual]

Specify whether to regenerate interpolation weights or not. Initially the filter will reexecute no matter what this flag is set to (initial weights must be computed). Also, this flag is ignored if the number of input points/cells or the number of control mesh points/cells changes between executions. Thus flag is used to force reexecution and recomputation of weights.

virtual int vtkDeformPointSet::RequestData ( vtkInformation ,
vtkInformationVector **  ,
vtkInformationVector  
) [protected, virtual]

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

Reimplemented from vtkPointSetAlgorithm.


Member Data Documentation

Definition at line 113 of file vtkDeformPointSet.h.

Definition at line 116 of file vtkDeformPointSet.h.

Definition at line 117 of file vtkDeformPointSet.h.

Definition at line 118 of file vtkDeformPointSet.h.

Definition at line 119 of file vtkDeformPointSet.h.

Definition at line 120 of file vtkDeformPointSet.h.


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