/usr/include/vtk-5.10/vtkPolygonalSurfacePointPlacer.h is in libvtk5-dev 5.10.1+dfsg-2.1build1.
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 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkPolygonalSurfacePointPlacer.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 - Place points on the surface of polygonal data.
//
// .SECTION Description
// vtkPolygonalSurfacePointPlacer places points on polygonal data and is
// meant to be used in conjunction with
// vtkPolygonalSurfaceContourLineInterpolator.
//
// .SECTION Usage
//
// .SECTION Caveats
// You should have computed cell normals for the input polydata if you are
// specifying a distance offset.
//
// .SECTION See Also
// vtkPointPlacer vtkPolyDataNormals
#ifndef __vtkPolygonalSurfacePointPlacer_h
#define __vtkPolygonalSurfacePointPlacer_h
#include "vtkPolyDataPointPlacer.h"
class vtkPolyDataCollection;
class vtkCellPicker;
class vtkPolygonalSurfacePointPlacerInternals;
class vtkPolyData;
//BTX
// The Node stores information about the point. This information is used by
// the interpolator. Reusing this information avoids the need for a second
// pick operation to regenerate it. (Cellpickers are slow).
struct vtkPolygonalSurfacePointPlacerNode
{
double WorldPosition[3];
double SurfaceWorldPosition[3];
vtkIdType CellId;
vtkIdType PointId;
double ParametricCoords[3]; // parametric coords within cell
vtkPolyData *PolyData;
};
//ETX
class VTK_WIDGETS_EXPORT vtkPolygonalSurfacePointPlacer
: public vtkPolyDataPointPlacer
{
public:
// Description:
// Instantiate this class.
static vtkPolygonalSurfacePointPlacer *New();
// Description:
// Standard methods for instances of this class.
vtkTypeMacro(vtkPolygonalSurfacePointPlacer,vtkPolyDataPointPlacer);
void PrintSelf(ostream& os, vtkIndent indent);
// Descuription:
// Add /remove a prop, to place points on
virtual void AddProp( vtkProp * );
virtual void RemoveViewProp(vtkProp *prop);
virtual void RemoveAllProps();
// Description:
// Given a renderer and a display position in pixel coordinates,
// compute the world position and orientation where this point
// will be placed. This method is typically used by the
// representation to place the point initially.
// For the Terrain point placer this computes world points that
// lie at the specified height above the terrain.
virtual int ComputeWorldPosition( vtkRenderer *ren,
double displayPos[2],
double worldPos[3],
double worldOrient[9] );
// Description:
// Given a renderer, a display position, and a reference world
// position, compute the new world position and orientation
// of this point. This method is typically used by the
// representation to move the point.
virtual int ComputeWorldPosition( vtkRenderer *ren,
double displayPos[2],
double refWorldPos[3],
double worldPos[3],
double worldOrient[9] );
// Description:
// Given a world position check the validity of this
// position according to the constraints of the placer
virtual int ValidateWorldPosition( double worldPos[3] );
// Description:
// Give the node a chance to update its auxiliary point id.
virtual int UpdateNodeWorldPosition( double worldPos[3],
vtkIdType nodePointId );
// Description:
// Given a display position, check the validity of this position.
virtual int ValidateDisplayPosition( vtkRenderer *, double displayPos[2] );
// Description:
// Given a world position and a world orientation,
// validate it according to the constraints of the placer.
virtual int ValidateWorldPosition( double worldPos[3],
double worldOrient[9] );
// Description:
// Get the Prop picker.
vtkGetObjectMacro( CellPicker, vtkCellPicker );
// Description:
// Be sure to add polydata on which you wish to place points to this list
// or they will not be considered for placement.
vtkGetObjectMacro( Polys, vtkPolyDataCollection );
// Description:
// Height offset at which points may be placed on the polygonal surface.
// If you specify a non-zero value here, be sure to compute cell normals
// on your input polygonal data (easily done with vtkPolyDataNormals).
vtkSetMacro( DistanceOffset, double );
vtkGetMacro( DistanceOffset, double );
// Description:
// Snap to the closest point on the surface ?
// This is useful for the vtkPolygonalSurfaceContourLineInterpolator, when
// drawing contours along the edges of a surface mesh.
// OFF by default.
vtkSetMacro( SnapToClosestPoint, int );
vtkGetMacro( SnapToClosestPoint, int );
vtkBooleanMacro( SnapToClosestPoint, int );
//BTX
// Description:
// Internally used by the interpolator.
typedef vtkPolygonalSurfacePointPlacerNode Node;
Node *GetNodeAtWorldPosition( double worldPos[3] );
//ETX
protected:
vtkPolygonalSurfacePointPlacer();
~vtkPolygonalSurfacePointPlacer();
// The props that represents the terrain data (one or more) in a rendered
// scene
vtkCellPicker *CellPicker;
vtkPolyDataCollection *Polys;
vtkPolygonalSurfacePointPlacerInternals *Internals;
double DistanceOffset;
int SnapToClosestPoint;
private:
vtkPolygonalSurfacePointPlacer(const vtkPolygonalSurfacePointPlacer&); //Not implemented
void operator=(const vtkPolygonalSurfacePointPlacer&); //Not implemented
};
#endif
|