/usr/include/vtk-5.10/vtk3DWidget.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 | /*=========================================================================
Program: Visualization Toolkit
Module: vtk3DWidget.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 vtk3DWidget - an abstract superclass for 3D widgets
// .SECTION Description
// vtk3DWidget is an abstract superclass for 3D interactor observers. These
// 3D widgets represent themselves in the scene, and have special callbacks
// associated with them that allows interactive manipulation of the widget.
// Inparticular, the difference between a vtk3DWidget and its abstract
// superclass vtkInteractorObserver is that vtk3DWidgets are "placed" in 3D
// space. vtkInteractorObservers have no notion of where they are placed,
// and may not exist in 3D space at all. 3D widgets also provide auxiliary
// functions like producing a transformation, creating polydata (for seeding
// streamlines, probes, etc.) or creating implicit functions. See the
// concrete subclasses for particulars.
//
// Typically the widget is used by specifying a vtkProp3D or VTK dataset as
// input, and then invoking the "On" method to activate it. (You can also
// specify a bounding box to help position the widget.) Prior to invoking the
// On() method, the user may also wish to use the PlaceWidget() to initially
// position it. The 'i' (for "interactor") keypresses also can be used to
// turn the widgets on and off (methods exist to change the key value
// and enable keypress activiation).
//
// To support interactive manipulation of objects, this class (and
// subclasses) invoke the events StartInteractionEvent, InteractionEvent, and
// EndInteractionEvent. These events are invoked when the vtk3DWidget enters
// a state where rapid response is desired: mouse motion, etc. The events can
// be used, for example, to set the desired update frame rate
// (StartInteractionEvent), operate on the vtkProp3D or other object
// (InteractionEvent), and set the desired frame rate back to normal values
// (EndInteractionEvent).
//
// Note that the Priority attribute inherited from vtkInteractorObserver has
// a new default value which is now 0.5 so that all 3D widgets have a higher
// priority than the usual interactor styles.
//
// .SECTION See Also
// vtkBoxWidget vtkPlaneWidget vtkLineWidget vtkPointWidget
// vtkSphereWidget vtkImplicitPlaneWidget
#ifndef __vtk3DWidget_h
#define __vtk3DWidget_h
#include "vtkInteractorObserver.h"
class vtkDataSet;
class vtkProp3D;
class VTK_WIDGETS_EXPORT vtk3DWidget : public vtkInteractorObserver
{
public:
vtkTypeMacro(vtk3DWidget,vtkInteractorObserver);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// This method is used to initially place the widget. The placement of the
// widget depends on whether a Prop3D or input dataset is provided. If one
// of these two is provided, they will be used to obtain a bounding box,
// around which the widget is placed. Otherwise, you can manually specify a
// bounds with the PlaceWidget(bounds) method. Note: PlaceWidget(bounds)
// is required by all subclasses; the other methods are provided as
// convenience methods.
virtual void PlaceWidget(double bounds[6]) = 0;
virtual void PlaceWidget();
virtual void PlaceWidget(double xmin, double xmax, double ymin, double ymax,
double zmin, double zmax);
// Description:
// Specify a vtkProp3D around which to place the widget. This
// is not required, but if supplied, it is used to initially
// position the widget.
virtual void SetProp3D(vtkProp3D*);
vtkGetObjectMacro(Prop3D,vtkProp3D);
// Description:
// Specify the input dataset. This is not required, but if supplied,
// and no vtkProp3D is specified, it is used to initially position
// the widget.
virtual void SetInput(vtkDataSet*);
vtkGetObjectMacro(Input,vtkDataSet);
// Description:
// Set/Get a factor representing the scaling of the widget upon placement
// (via the PlaceWidget() method). Normally the widget is placed so that
// it just fits within the bounding box defined in PlaceWidget(bounds).
// The PlaceFactor will make the widget larger (PlaceFactor > 1) or smaller
// (PlaceFactor < 1). By default, PlaceFactor is set to 0.5.
vtkSetClampMacro(PlaceFactor,double,0.01,VTK_DOUBLE_MAX);
vtkGetMacro(PlaceFactor,double);
// Description:
// Set/Get the factor that controls the size of the handles that
// appear as part of the widget. These handles (like spheres, etc.)
// are used to manipulate the widget, and are sized as a fraction of
// the screen diagonal.
vtkSetClampMacro(HandleSize,double,0.001,0.5);
vtkGetMacro(HandleSize,double);
protected:
vtk3DWidget();
~vtk3DWidget();
// Used to position and scale the widget initially
vtkProp3D *Prop3D;
vtkDataSet *Input;
//has the widget ever been placed
double PlaceFactor;
int Placed;
void AdjustBounds(double bounds[6], double newBounds[6], double center[3]);
//control the size of handles (if there are any)
double InitialBounds[6];
double InitialLength;
double HandleSize;
double SizeHandles(double factor);
virtual void SizeHandles() {}//subclass in turn invokes parent's SizeHandles()
//used to track the depth of the last pick; also interacts with handle sizing
int ValidPick;
double LastPickPosition[3];
private:
vtk3DWidget(const vtk3DWidget&); // Not implemented.
void operator=(const vtk3DWidget&); // Not implemented.
};
#endif
|