/usr/include/vtk-6.2/vtkArcSource.h is in libvtk6-dev 6.2.0+dfsg1-10build1.
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 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkArcSource.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 vtkArcSource - create an arc between two end points
// .SECTION Description
// vtkArcSource is a source object that creates an arc defined by two
// endpoints and a center. The number of segments composing the polyline
// is controlled by setting the object resolution.
// Alternatively, one can use a better API (that does not allow for
// inconsistent nor ambiguous inputs), using a starting point, a normal,
// and an angle. The default API being the original one, in order to use
// the improved API, one must switch the UseNormalAndAngle flag to TRUE.
// The development of an improved, consistent API (based on point, normal,
// and angle) was supported by CEA/DIF - Commissariat a l'Energie Atomique,
// Centre DAM Ile-De-France, BP12, F-91297 Arpajon, France, and implemented
// by Philippe Pebay, Kitware SAS 2012.
#ifndef vtkArcSource_h
#define vtkArcSource_h
#include "vtkFiltersSourcesModule.h" // For export macro
#include "vtkPolyDataAlgorithm.h"
class VTKFILTERSSOURCES_EXPORT vtkArcSource : public vtkPolyDataAlgorithm
{
public:
static vtkArcSource *New();
vtkTypeMacro(vtkArcSource,vtkPolyDataAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Set position of first end point.
vtkSetVector3Macro(Point1,double);
vtkGetVectorMacro(Point1,double,3);
// Description:
// Set position of other end point.
vtkSetVector3Macro(Point2,double);
vtkGetVectorMacro(Point2,double,3);
// Description:
// Set position of the center of the circle that define the arc.
// Note: you can use the function vtkMath::Solve3PointCircle to
// find the center from 3 points located on a circle.
vtkSetVector3Macro(Center,double);
vtkGetVectorMacro(Center,double,3);
// Description:
// Set normal vector.
// Note: This is only used when UseNormalAndRadius is ON.
vtkSetVector3Macro(Normal,double);
vtkGetVectorMacro(Normal,double,3);
// Description:
// Set polar vector.
// Note: This is only used when UseNormalAndRadius is ON.
vtkSetVector3Macro(PolarVector,double);
vtkGetVectorMacro(PolarVector,double,3);
// Description:
// Angular sector occupied by the arc, beginning at Point1.
// Note: This is only used when UseNormalAndRadius is ON.
vtkSetClampMacro(Angle,double,-360.0,360.0);
vtkGetMacro(Angle,double);
// Description:
// Divide line into resolution number of pieces.
// Note: if Resolution is set to 1 (default), the arc is a
// straight line.
vtkSetClampMacro(Resolution,int,1,VTK_INT_MAX);
vtkGetMacro(Resolution,int);
// Description:
// Use the angle that is a negative coterminal of the vectors angle:
// the longest angle.
// Note: false by default.
vtkSetMacro(Negative, bool);
vtkGetMacro(Negative, bool);
vtkBooleanMacro(Negative, bool);
// Description:
// Activate the API based on normal and radius.
// The previous API (which remains the default) allows for inconsistent
// (when Point1 and Point2 are not equidistant from Center) or
// ambiguous (when Point1, Point2, and Center are aligned).
// Note: false by default.
vtkSetMacro(UseNormalAndAngle, bool);
vtkGetMacro(UseNormalAndAngle, bool);
vtkBooleanMacro(UseNormalAndAngle, bool);
// Description:
// Set/get the desired precision for the output points.
// vtkAlgorithm::SINGLE_PRECISION - Output single-precision floating point.
// vtkAlgorithm::DOUBLE_PRECISION - Output double-precision floating point.
vtkSetMacro(OutputPointsPrecision,int);
vtkGetMacro(OutputPointsPrecision,int);
protected:
vtkArcSource(int res=1);
~vtkArcSource() {}
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *);
double Point1[3];
double Point2[3];
double Center[3];
double Normal[3];
double PolarVector[3];
double Angle;
int Resolution;
bool Negative;
bool UseNormalAndAngle;
int OutputPointsPrecision;
private:
vtkArcSource(const vtkArcSource&); // Not implemented.
void operator=(const vtkArcSource&); // Not implemented.
};
#endif
|