/usr/include/vtk-6.3/vtkSelectVisiblePoints.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 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkSelectVisiblePoints.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 vtkSelectVisiblePoints - extract points that are visible (based on z-buffer calculation)
// .SECTION Description
// vtkSelectVisiblePoints is a filter that selects points based on
// whether they are visible or not. Visibility is determined by
// accessing the z-buffer of a rendering window. (The position of each
// input point is converted into display coordinates, and then the
// z-value at that point is obtained. If within the user-specified
// tolerance, the point is considered visible.)
//
// Points that are visible (or if the ivar SelectInvisible is on,
// invisible points) are passed to the output. Associated data
// attributes are passed to the output as well.
//
// This filter also allows you to specify a rectangular window in display
// (pixel) coordinates in which the visible points must lie. This can be
// used as a sort of local "brushing" operation to select just data within
// a window.
//
// .SECTION Caveats
// You must carefully synchronize the execution of this filter. The
// filter refers to a renderer, which is modified every time a render
// occurs. Therefore, the filter is always out of date, and always
// executes. You may have to perform two rendering passes, or if you
// are using this filter in conjunction with vtkLabeledDataMapper,
// things work out because 2D rendering occurs after the 3D rendering.
#ifndef vtkSelectVisiblePoints_h
#define vtkSelectVisiblePoints_h
#include "vtkRenderingCoreModule.h" // For export macro
#include "vtkPolyDataAlgorithm.h"
class vtkRenderer;
class vtkMatrix4x4;
class VTKRENDERINGCORE_EXPORT vtkSelectVisiblePoints : public vtkPolyDataAlgorithm
{
public:
vtkTypeMacro(vtkSelectVisiblePoints, vtkPolyDataAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Instantiate object with no renderer; window selection turned off;
// tolerance set to 0.01; and select invisible off.
static vtkSelectVisiblePoints *New();
// Description:
// Specify the renderer in which the visibility computation is to be
// performed.
void SetRenderer(vtkRenderer* ren)
{
if (this->Renderer != ren)
{
this->Renderer = ren;
this->Modified();
}
}
vtkRenderer* GetRenderer()
{ return this->Renderer; }
// Description:
// Set/Get the flag which enables selection in a rectangular display
// region.
vtkSetMacro(SelectionWindow, int);
vtkGetMacro(SelectionWindow, int);
vtkBooleanMacro(SelectionWindow, int);
// Description:
// Specify the selection window in display coordinates. You must specify
// a rectangular region using (xmin,xmax,ymin,ymax).
vtkSetVector4Macro(Selection, int);
vtkGetVectorMacro(Selection, int, 4);
// Description:
// Set/Get the flag which enables inverse selection; i.e., invisible points
// are selected.
vtkSetMacro(SelectInvisible, int);
vtkGetMacro(SelectInvisible, int);
vtkBooleanMacro(SelectInvisible, int);
// Description:
// Set/Get a tolerance to use to determine whether a point is visible. A
// tolerance is usually required because the conversion from world space
// to display space during rendering introduces numerical round-off.
vtkSetClampMacro(Tolerance, double,0.0, VTK_DOUBLE_MAX);
vtkGetMacro(Tolerance, double);
// Description:
// Requires the renderer to be set. Populates the composite perspective transform
// and returns a pointer to the Z-buffer (that must be deleted) if getZbuff is set.
float * Initialize(bool getZbuff);
// Description:
// Tests if a point x is being occluded or not against the Z-Buffer array passed in by
// zPtr. Call Initialize before calling this method.
bool IsPointOccluded(const double x[3], const float *zPtr);
// Description:
// Return MTime also considering the renderer.
unsigned long GetMTime();
protected:
vtkSelectVisiblePoints();
~vtkSelectVisiblePoints();
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
virtual int FillInputPortInformation(int port, vtkInformation *info);
vtkRenderer *Renderer;
vtkMatrix4x4 *CompositePerspectiveTransform;
int SelectionWindow;
int Selection[4];
int InternalSelection[4];
int SelectInvisible;
double Tolerance;
private:
vtkSelectVisiblePoints(const vtkSelectVisiblePoints&); // Not implemented.
void operator=(const vtkSelectVisiblePoints&); // Not implemented.
};
#endif
|