VTK
vtkAbstractPolygonalHandleRepresentation3D.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkAbstractPolygonalHandleRepresentation3D.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
34#ifndef vtkAbstractPolygonalHandleRepresentation3D_h
35#define vtkAbstractPolygonalHandleRepresentation3D_h
36
37#include "vtkInteractionWidgetsModule.h" // For export macro
39
40class vtkProperty;
42class vtkCellPicker;
45class vtkMatrix4x4;
46class vtkPolyData;
48class vtkActor;
49class vtkFollower;
50class vtkVectorText;
51
52class VTKINTERACTIONWIDGETS_EXPORT vtkAbstractPolygonalHandleRepresentation3D
54{
55public:
56
58
62 void PrintSelf(ostream& os, vtkIndent indent);
64
66
69 virtual void SetWorldPosition(double p[3]);
70 virtual void SetDisplayPosition(double p[3]);
72
74
80
82
87 vtkGetObjectMacro(Property,vtkProperty);
88 vtkGetObjectMacro(SelectedProperty,vtkProperty);
90
96
98
101 virtual void BuildRepresentation();
102 virtual void StartWidgetInteraction(double eventPos[2]);
103 virtual void WidgetInteraction(double eventPos[2]);
104 virtual int ComputeInteractionState(int X, int Y, int modify=0);
106
108
111 virtual void ShallowCopy(vtkProp *prop);
112 virtual void DeepCopy(vtkProp *prop);
115 virtual int RenderOpaqueGeometry(vtkViewport *viewport);
118 virtual double *GetBounds();
120
122
126 vtkSetMacro( LabelVisibility, int );
127 vtkGetMacro( LabelVisibility, int );
128 vtkBooleanMacro( LabelVisibility, int );
129 virtual void SetLabelText( const char * label );
130 virtual char * GetLabelText();
132
134
137 virtual void SetLabelTextScale( double scale[3] );
138 void SetLabelTextScale(double x, double y, double z)
139 {
140 double scale[3] = {x, y, z};
141 this->SetLabelTextScale(scale);
142 }
143 virtual double * GetLabelTextScale();
145
147
150 vtkGetObjectMacro( LabelTextActor, vtkFollower );
152
158 virtual void SetUniformScale( double scale );
159
161
164 vtkSetMacro( HandleVisibility, int );
165 vtkGetMacro( HandleVisibility, int );
166 vtkBooleanMacro( HandleVisibility, int );
168
169 void Highlight(int highlight);
170
172
183 vtkSetMacro( SmoothMotion, int );
184 vtkGetMacro( SmoothMotion, int );
185 vtkBooleanMacro( SmoothMotion, int );
187
188protected:
191
198 double LastPickPosition[3];
199 double LastEventPosition[2];
206
207 // Register internal Pickers within PickingManager
208 virtual void RegisterPickers();
209
210 // Methods to manipulate the cursor
211 virtual void Translate(double *p1, double *p2);
212 virtual void Scale(double *p1, double *p2, double eventPos[2]);
213 virtual void MoveFocus(double *p1, double *p2);
214
216
217 // Given a motion vector defined by p1 --> p2 (p1 and p2 are in
218 // world coordinates), the new display position of the handle center is
219 // populated into requestedDisplayPos. This is again only a request for the
220 // new display position. It is up to the point placer to deduce the
221 // appropriate world co-ordinates that this display position will map into.
222 // The placer may even disallow such a movement.
223 // If "SmoothMotion" is OFF, the returned requestedDisplayPos is the same
224 // as the event position, ie the location of the mouse cursor. If its OFF,
225 // incremental offsets as described above are used to compute it.
226 void MoveFocusRequest( double *p1, double *p2,
227 double eventPos[2], double requestedDisplayPos[3] );
228
229 int DetermineConstraintAxis(int constraint, double *x, double *startPickPos);
230
240 virtual void UpdateHandle();
241
245 virtual void UpdateLabel();
246
247 // Handle the label.
254
255private:
257 void operator=(const vtkAbstractPolygonalHandleRepresentation3D&) VTK_DELETE_FUNCTION;
258};
259
260#endif
261
262
represent a user defined handle geometry in 3D while maintaining a fixed orientation w....
virtual void ReleaseGraphicsResources(vtkWindow *)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Release any graphics resources that are being...
virtual double * GetBounds()
Methods to make this class behave as a vtkProp.
virtual void SetLabelTextScale(double scale[3])
Scale text (font size along each dimension).
virtual vtkAbstractTransform * GetTransform()
Get the transform used to transform the generic handle polydata before placing it in the render windo...
virtual void WidgetInteraction(double eventPos[2])
virtual void GetActors(vtkPropCollection *)
For some exporters and other other operations we must be able to collect all the actors or volumes.
virtual void DeepCopy(vtkProp *prop)
virtual int HasTranslucentPolygonalGeometry()
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THESE METHODS OUTSIDE OF THE RENDE...
virtual int RenderOpaqueGeometry(vtkViewport *viewport)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THESE METHODS OUTSIDE OF THE RENDE...
virtual void ShallowCopy(vtkProp *prop)
Methods to make this class behave as a vtkProp.
int DetermineConstraintAxis(int constraint, double *x, double *startPickPos)
virtual void SetDisplayPosition(double p[3])
Handles usually have their coordinates set in display coordinates (generally by an associated widget)...
virtual void RegisterPickers()
Register internal Pickers in the Picking Manager.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual void SetLabelText(const char *label)
void MoveFocusRequest(double *p1, double *p2, double eventPos[2], double requestedDisplayPos[3])
virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport)
virtual int ComputeInteractionState(int X, int Y, int modify=0)
virtual void Translate(double *p1, double *p2)
virtual void SetWorldPosition(double p[3])
Set the position of the point in world and display coordinates.
virtual void BuildRepresentation()
Methods to make this class properly act like a vtkWidgetRepresentation.
virtual void StartWidgetInteraction(double eventPos[2])
virtual void UpdateHandle()
Update the actor position.
virtual void UpdateLabel()
Opportunity to update the label position and text during each render.
virtual void SetUniformScale(double scale)
The handle may be scaled uniformly in all three dimensions using this API.
virtual void Scale(double *p1, double *p2, double eventPos[2])
void SetHandle(vtkPolyData *)
Set/get the handle polydata.
void SetProperty(vtkProperty *)
Set/Get the handle properties when unselected and selected.
virtual void MoveFocus(double *p1, double *p2)
superclass for all geometric transformations
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:52
ray-cast cell picker for all kinds of Prop3Ds
Definition: vtkCellPicker.h:70
a subclass of actor that always faces the camera
Definition: vtkFollower.h:47
abstract class for representing widget handles
a simple class to control print indentation
Definition: vtkIndent.h:40
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:42
convert a matrix to a transform
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition: vtkPolyData.h:86
a list of Props
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:48
represent surface properties of a geometric object
Definition: vtkProperty.h:65
transform points and associated normals and vectors for polygonal dataset
create polygonal text
Definition: vtkVectorText.h:48
abstract specification for Viewports
Definition: vtkViewport.h:48
window superclass for vtkRenderWindow
Definition: vtkWindow.h:35
@ scale
Definition: vtkX3D.h:229
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.