/usr/include/paraview/vtkDeformPointSet.h is in paraview-dev 5.0.1+dfsg1-4.
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:    vtkDeformPointSet.h
  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
 |