VTK
vtkPointHandleRepresentation3D.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkPointHandleRepresentation3D.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=========================================================================*/
30#ifndef vtkPointHandleRepresentation3D_h
31#define vtkPointHandleRepresentation3D_h
32
33#include "vtkInteractionWidgetsModule.h" // For export macro
35#include "vtkCursor3D.h" // Needed for delegation to cursor3D
36
37class vtkCursor3D;
38class vtkProperty;
39class vtkActor;
41class vtkCellPicker;
42
43class VTKINTERACTIONWIDGETS_EXPORT vtkPointHandleRepresentation3D : public vtkHandleRepresentation
44{
45public:
50
52
56 void PrintSelf(ostream& os, vtkIndent indent);
58
60
67 virtual void SetWorldPosition(double p[3]);
68 virtual void SetDisplayPosition(double p[3]);
70
74 void SetOutline(int o)
75 {this->Cursor3D->SetOutline(o);}
77 {return this->Cursor3D->GetOutline();}
78 void OutlineOn()
79 {this->Cursor3D->OutlineOn();}
81 {this->Cursor3D->OutlineOff();}
82
86 void SetXShadows(int o)
87 {this->Cursor3D->SetXShadows(o);}
89 {return this->Cursor3D->GetXShadows();}
91 {this->Cursor3D->XShadowsOn();}
93 {this->Cursor3D->XShadowsOff();}
94
98 void SetYShadows(int o)
99 {this->Cursor3D->SetYShadows(o);}
101 {return this->Cursor3D->GetYShadows();}
103 {this->Cursor3D->YShadowsOn();}
105 {this->Cursor3D->YShadowsOff();}
106
110 void SetZShadows(int o)
111 {this->Cursor3D->SetZShadows(o);}
113 {return this->Cursor3D->GetZShadows();}
115 {this->Cursor3D->ZShadowsOn();}
117 {this->Cursor3D->ZShadowsOff();}
118
120
132 vtkGetMacro(TranslationMode,int);
133 vtkBooleanMacro(TranslationMode,int);
135
137
140 void AllOn()
141 {
142 this->OutlineOn();
143 this->XShadowsOn();
144 this->YShadowsOn();
145 this->ZShadowsOn();
146 }
147 void AllOff()
148 {
149 this->OutlineOff();
150 this->XShadowsOff();
151 this->YShadowsOff();
152 this->ZShadowsOff();
153 }
155
157
162 vtkGetObjectMacro(Property,vtkProperty);
163 vtkGetObjectMacro(SelectedProperty,vtkProperty);
165
167
173 vtkSetClampMacro(HotSpotSize,double,0.0,1.0);
174 vtkGetMacro(HotSpotSize,double);
176
180 virtual void SetHandleSize(double size);
181
183
186 virtual double *GetBounds();
187 virtual void BuildRepresentation();
188 virtual void StartWidgetInteraction(double eventPos[2]);
189 virtual void WidgetInteraction(double eventPos[2]);
190 virtual int ComputeInteractionState(int X, int Y, int modify=0);
191 virtual void PlaceWidget(double bounds[6]);
193
195
198 virtual void ShallowCopy(vtkProp *prop);
199 virtual void DeepCopy(vtkProp *prop);
202 virtual int RenderOpaqueGeometry(vtkViewport *viewport);
206
207 void Highlight(int highlight);
208
210
221 vtkSetMacro( SmoothMotion, int );
222 vtkGetMacro( SmoothMotion, int );
223 vtkBooleanMacro( SmoothMotion, int );
225
226protected:
229
230 // the cursor3D
234
235
236 // Do the picking
238 double LastPickPosition[3];
239 double LastEventPosition[2];
240
241 // Register internal Pickers within PickingManager
242 virtual void RegisterPickers();
243
244 // Methods to manipulate the cursor
246 void Translate(double *p1, double *p2);
247 void Scale(double *p1, double *p2, double eventPos[2]);
248 void MoveFocus(double *p1, double *p2);
250
251 // Given a motion vector defined by p1 --> p2 (p1 and p2 are in
252 // world coordinates), the new display position of the handle center is
253 // populated into requestedDisplayPos. This is again only a request for the
254 // new display position. It is up to the point placer to deduce the
255 // appropriate world co-ordinates that this display position will map into.
256 // The placer may even disallow such a movement.
257 // If "SmoothMotion" is OFF, the returned requestedDisplayPos is the same
258 // as the event position, ie the location of the mouse cursor. If its OFF,
259 // incremental offsets as described above are used to compute it.
260 void MoveFocusRequest( double *p1, double *p2,
261 double eventPos[2], double requestedDisplayPos[3] );
262
263 // Properties used to control the appearance of selected objects and
264 // the manipulator in general.
268
269 // The size of the hot spot.
271 int DetermineConstraintAxis(int constraint, double *x, double *startPoint);
274
275 // Current handle sized (may reflect scaling)
277
278 // Control how translation works
280
282
283private:
285 void operator=(const vtkPointHandleRepresentation3D&) VTK_DELETE_FUNCTION;
286};
287
288#endif
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
generate a 3D cursor representation
Definition: vtkCursor3D.h:40
abstract class for representing widget handles
a simple class to control print indentation
Definition: vtkIndent.h:40
represent the position of a point in 3D space
virtual void StartWidgetInteraction(double eventPos[2])
void AllOn()
Convenience methods to turn outline and shadows on and off.
virtual void DeepCopy(vtkProp *prop)
int DetermineConstraintAxis(int constraint, double *x, double *startPoint)
void SetYShadows(int o)
Turn on/off the wireframe y-shadows.
virtual void WidgetInteraction(double eventPos[2])
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.
void MoveFocus(double *p1, double *p2)
void MoveFocusRequest(double *p1, double *p2, double eventPos[2], double requestedDisplayPos[3])
void Highlight(int highlight)
virtual void SetHandleSize(double size)
Overload the superclasses SetHandleSize() method to update internal variables.
virtual void SetDisplayPosition(double p[3])
Handles usually have their coordinates set in display coordinates (generally by an associated widget)...
virtual int HasTranslucentPolygonalGeometry()
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE DO NOT USE THESE METHODS OUTSIDE OF THE RENDE...
virtual int RenderTranslucentPolygonalGeometry(vtkViewport *viewport)
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual int ComputeInteractionState(int X, int Y, int modify=0)
void SetOutline(int o)
Turn on/off the wireframe bounding box.
void SetProperty(vtkProperty *)
Set/Get the handle properties when unselected and selected.
virtual void GetActors(vtkPropCollection *)
For some exporters and other other operations we must be able to collect all the actors or volumes.
virtual double * GetBounds()
Methods to make this class properly act like a vtkWidgetRepresentation.
void SetZShadows(int o)
Turn on/off the wireframe z-shadows.
void SetTranslationMode(int mode)
If translation mode is on, as the widget is moved the bounding box, shadows, and cursor are all trans...
void SetXShadows(int o)
Turn on/off the wireframe x-shadows.
virtual void ReleaseGraphicsResources(vtkWindow *)
WARNING: INTERNAL METHOD - NOT INTENDED FOR GENERAL USE Release any graphics resources that are being...
virtual void BuildRepresentation()
virtual void RegisterPickers()
Register internal Pickers in the Picking Manager.
virtual void SetWorldPosition(double p[3])
Set the position of the point in world and display coordinates.
void SetSelectedProperty(vtkProperty *)
void Scale(double *p1, double *p2, double eventPos[2])
void Translate(double *p1, double *p2)
virtual void PlaceWidget(double bounds[6])
static vtkPointHandleRepresentation3D * New()
Instantiate this class.
map vtkPolyData to graphics primitives
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
abstract specification for Viewports
Definition: vtkViewport.h:48
window superclass for vtkRenderWindow
Definition: vtkWindow.h:35
@ mode
Definition: vtkX3D.h:247
@ size
Definition: vtkX3D.h:253
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.