/usr/include/vtk-6.3/vtkProp3DAxisFollower.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 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 | /*=========================================================================
Program: Visualization Toolkit
Module: vtkProp3DAxisFollower.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 vtkProp3DAxisFollower - a subclass of vtkProp3DFollower that ensures
// that data is always parallel to the axis defined by a vtkAxisActor.
// .SECTION Description
// vtkProp3DAxisFollower is a subclass of vtkProp3DFollower that always follows
// its specified axis. More specifically it will not change its position or
// scale, but it will continually update its orientation so that it is aligned
// with the axis and facing at angle to the camera to provide maximum visibilty.
// This is typically used for text labels for 3d plots.
// .SECTION see also
// vtkFollower vtkAxisFollower vtkProp3DFollower
#ifndef vtkProp3DAxisFollower_h
#define vtkProp3DAxisFollower_h
#include "vtkRenderingAnnotationModule.h" // For export macro
#include "vtkProp3DFollower.h"
#include "vtkWeakPointer.h" // For vtkWeakPointer
class vtkAxisActor;
class vtkViewport;
class VTKRENDERINGANNOTATION_EXPORT vtkProp3DAxisFollower
: public vtkProp3DFollower
{
public:
// Description:
// Creates a follower with no camera set.
static vtkProp3DAxisFollower *New();
// Description:
// Standard VTK methods for type and printing.
vtkTypeMacro(vtkProp3DAxisFollower,vtkProp3DFollower);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Set axis that needs to be followed.
virtual void SetAxis(vtkAxisActor*);
virtual vtkAxisActor* GetAxis();
// Description:
// Set/Get state of auto center mode where additional
// translation will be added to make sure the underlying
// geometry has its pivot point at the center of its bounds.
vtkSetMacro(AutoCenter, int);
vtkGetMacro(AutoCenter, int);
vtkBooleanMacro(AutoCenter, int);
// Description:
// Enable / disable use of distance based LOD. If enabled the actor
// will not be visible at a certain distance from the camera.
// Default is false.
vtkSetMacro(EnableDistanceLOD, int);
vtkGetMacro(EnableDistanceLOD, int);
// Description:
// Set distance LOD threshold (0.0 - 1.0).This determines at what fraction
// of camera far clip range, actor is not visible.
// Default is 0.80.
vtkSetClampMacro(DistanceLODThreshold, double, 0.0, 1.0);
vtkGetMacro(DistanceLODThreshold, double);
// Description:
// Enable / disable use of view angle based LOD. If enabled the actor
// will not be visible at a certain view angle.
// Default is true.
vtkSetMacro(EnableViewAngleLOD, int);
vtkGetMacro(EnableViewAngleLOD, int);
// Description:
// Set view angle LOD threshold (0.0 - 1.0).This determines at what view
// angle to geometry will make the geometry not visibile.
// Default is 0.34.
vtkSetClampMacro(ViewAngleLODThreshold, double, 0.0, 1.0);
vtkGetMacro(ViewAngleLODThreshold, double);
// Description:
// Set/Get the desired screen offset from the axis.
vtkSetMacro(ScreenOffset, double);
vtkGetMacro(ScreenOffset, double);
// Description:
// Generate the matrix based on ivars. This method overloads its superclasses
// ComputeMatrix() method due to the special vtkProp3DAxisFollower matrix operations.
virtual void ComputeMatrix();
// Description:
// Shallow copy of a follower. Overloads the virtual vtkProp method.
void ShallowCopy(vtkProp *prop);
// Description:
// Calculate scale factor to maintain same size of a object
// on the screen.
static double AutoScale(vtkViewport *viewport, vtkCamera * camera,
double screenSize, double position[3]);
// Description:
// This causes the actor to be rendered. It in turn will render the actor's
// property, texture map and then mapper. If a property hasn't been
// assigned, then the actor will create one automatically.
virtual int RenderOpaqueGeometry(vtkViewport *viewport);
virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport);
virtual int RenderVolumetricGeometry(vtkViewport *viewport);
virtual void SetViewport(vtkViewport* viewport);
virtual vtkViewport* GetViewport();
protected:
vtkProp3DAxisFollower();
~vtkProp3DAxisFollower();
void CalculateOrthogonalVectors(double Rx[3], double Ry[3], double Rz[3],
vtkAxisActor *axis1, double *dop,
vtkViewport *ren);
void ComputeRotationAndTranlation(vtkViewport *ren, double translation[3],
double Rx[3], double Ry[3], double Rz[3],
vtkAxisActor *axis);
// \NOTE: Not used as of now.
void ComputerAutoCenterTranslation(const double& autoScaleFactor,
double translation[3]);
int TestDistanceVisibility();
void ExecuteViewAngleVisibility(double normal[3]);
bool IsTextUpsideDown(double* a, double* b);
int AutoCenter;
int EnableDistanceLOD;
double DistanceLODThreshold;
int EnableViewAngleLOD;
double ViewAngleLODThreshold;
double ScreenOffset;
vtkWeakPointer<vtkAxisActor> Axis;
vtkWeakPointer<vtkViewport> Viewport;
private:
vtkProp3DAxisFollower(const vtkProp3DAxisFollower&); // Not implemented.
void operator=(const vtkProp3DAxisFollower&); // Not implemented.
int TextUpsideDown;
int VisibleAtCurrentViewAngle;
};
#endif
|