/usr/include/vtk-6.3/vtkDeformPointSet.h is in libvtk6-dev 6.3.0+dfsg1-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | /*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile$
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkDeformPointSet - use a control polyhedron to deform an input vtkPointSet
// .SECTION Description
// 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.
// .SECTION Caveats
// 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.
// .SECTION See Also
// vtkMeanValueCoordinatesInterpolator vtkProbePolyhedron vtkPolyhedron
#ifndef vtkDeformPointSet_h
#define vtkDeformPointSet_h
#include "vtkFiltersGeneralModule.h" // For export macro
#include "vtkPointSetAlgorithm.h"
#include "vtkSmartPointer.h" // For protected ivars
class vtkDoubleArray;
class vtkPolyData;
class VTKFILTERSGENERAL_EXPORT vtkDeformPointSet : public vtkPointSetAlgorithm
{
public:
// Description:
// Standard methods for instantiable (i.e., concrete) class.
static vtkDeformPointSet *New();
vtkTypeMacro(vtkDeformPointSet,vtkPointSetAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Specify the control mesh to deform the input vtkPointSet. The control
// mesh must be a closed, non-self-intersecting, manifold mesh.
void SetControlMeshData(vtkPolyData *controlMesh);
vtkPolyData *GetControlMeshData();
// Description:
// Specify the point locations used to probe input. Any geometry
// can be used. New style. Equivalent to SetInputConnection(1, algOutput).
void SetControlMeshConnection(vtkAlgorithmOutput* algOutput);
// Description:
// 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.
vtkSetMacro(InitializeWeights, int);
vtkGetMacro(InitializeWeights, int);
vtkBooleanMacro(InitializeWeights, int);
protected:
vtkDeformPointSet();
~vtkDeformPointSet();
int InitializeWeights;
// Keep track of information between execution passes
vtkIdType InitialNumberOfControlMeshPoints;
vtkIdType InitialNumberOfControlMeshCells;
vtkIdType InitialNumberOfPointSetPoints;
vtkIdType InitialNumberOfPointSetCells;
vtkSmartPointer<vtkDoubleArray> Weights;
virtual int RequestData(vtkInformation *, vtkInformationVector **,
vtkInformationVector *);
private:
vtkDeformPointSet(const vtkDeformPointSet&); // Not implemented.
void operator=(const vtkDeformPointSet&); // Not implemented.
};
#endif
|