VTK  9.2.6
vtkPointWidget.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkPointWidget.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=========================================================================*/
66
67#ifndef vtkPointWidget_h
68#define vtkPointWidget_h
69
70#include "vtk3DWidget.h"
71#include "vtkCursor3D.h" // Needed for faster access to the Cursor3D
72#include "vtkInteractionWidgetsModule.h" // For export macro
73
74class vtkActor;
76class vtkCellPicker;
77class vtkPolyData;
78class vtkProperty;
79
80class VTKINTERACTIONWIDGETS_EXPORT vtkPointWidget : public vtk3DWidget
81{
82public:
87
89 void PrintSelf(ostream& os, vtkIndent indent) override;
90
92
95 void SetEnabled(int) override;
96 void PlaceWidget(double bounds[6]) override;
97 void PlaceWidget() override { this->Superclass::PlaceWidget(); }
99 double xmin, double xmax, double ymin, double ymax, double zmin, double zmax) override
100 {
101 this->Superclass::PlaceWidget(xmin, xmax, ymin, ymax, zmin, zmax);
102 }
103
104
110
116 void SetPosition(double x, double y, double z) { this->Cursor3D->SetFocalPoint(x, y, z); }
117 void SetPosition(double x[3]) { this->SetPosition(x[0], x[1], x[2]); }
118 double* GetPosition() VTK_SIZEHINT(3) { return this->Cursor3D->GetFocalPoint(); }
119 void GetPosition(double xyz[3]) { this->Cursor3D->GetFocalPoint(xyz); }
120
124 void SetOutline(int o) { this->Cursor3D->SetOutline(o); }
125 int GetOutline() { return this->Cursor3D->GetOutline(); }
126 void OutlineOn() { this->Cursor3D->OutlineOn(); }
127 void OutlineOff() { this->Cursor3D->OutlineOff(); }
128
132 void SetXShadows(int o) { this->Cursor3D->SetXShadows(o); }
133 int GetXShadows() { return this->Cursor3D->GetXShadows(); }
134 void XShadowsOn() { this->Cursor3D->XShadowsOn(); }
135 void XShadowsOff() { this->Cursor3D->XShadowsOff(); }
136
140 void SetYShadows(int o) { this->Cursor3D->SetYShadows(o); }
141 int GetYShadows() { return this->Cursor3D->GetYShadows(); }
142 void YShadowsOn() { this->Cursor3D->YShadowsOn(); }
143 void YShadowsOff() { this->Cursor3D->YShadowsOff(); }
144
148 void SetZShadows(int o) { this->Cursor3D->SetZShadows(o); }
149 int GetZShadows() { return this->Cursor3D->GetZShadows(); }
150 void ZShadowsOn() { this->Cursor3D->ZShadowsOn(); }
151 void ZShadowsOff() { this->Cursor3D->ZShadowsOff(); }
152
158 void SetTranslationMode(int mode)
159 {
160 this->Cursor3D->SetTranslationMode(mode);
161 this->Cursor3D->Update();
162 }
163 int GetTranslationMode() { return this->Cursor3D->GetTranslationMode(); }
166
168
171 void AllOn()
172 {
173 this->OutlineOn();
174 this->XShadowsOn();
175 this->YShadowsOn();
176 this->ZShadowsOn();
177 }
178 void AllOff()
179 {
180 this->OutlineOff();
181 this->XShadowsOff();
182 this->YShadowsOff();
183 this->ZShadowsOff();
184 }
185
186
188
193 vtkGetObjectMacro(Property, vtkProperty);
194 vtkGetObjectMacro(SelectedProperty, vtkProperty);
196
198
204 vtkSetClampMacro(HotSpotSize, double, 0.0, 1.0);
205 vtkGetMacro(HotSpotSize, double);
207
208protected:
210 ~vtkPointWidget() override;
211
212 // Manage the state of the widget
213 friend class vtkLineWidget;
214
215 int State;
224
225 // Handles the events
226 static void ProcessEvents(
227 vtkObject* object, unsigned long event, void* clientdata, void* calldata);
228
229 // ProcessEvents() dispatches to these methods.
230 virtual void OnMouseMove();
231 virtual void OnLeftButtonDown();
232 virtual void OnLeftButtonUp();
233 virtual void OnMiddleButtonDown();
234 virtual void OnMiddleButtonUp();
235 virtual void OnRightButtonDown();
236 virtual void OnRightButtonUp();
237
238 // the cursor3D
242 void Highlight(int highlight);
243
244 // Do the picking
246
247 // Register internal Pickers within PickingManager
248 void RegisterPickers() override;
249
250 // Methods to manipulate the cursor
252 void Translate(double* p1, double* p2);
253 void Scale(double* p1, double* p2, int X, int Y);
254 void MoveFocus(double* p1, double* p2);
256
257 // Properties used to control the appearance of selected objects and
258 // the manipulator in general.
262
263 // The size of the hot spot.
265 int DetermineConstraintAxis(int constraint, double* x);
268
269private:
270 vtkPointWidget(const vtkPointWidget&) = delete;
271 void operator=(const vtkPointWidget&) = delete;
272};
273
274#endif
virtual void PlaceWidget(double bounds[6])=0
This method is used to initially place the widget.
represents an object (geometry & properties) in a rendered scene
Definition vtkActor.h:46
ray-cast cell picker for all kinds of Prop3Ds
generate a 3D cursor representation
Definition vtkCursor3D.h:37
a simple class to control print indentation
Definition vtkIndent.h:34
void CreateDefaultProperties()
void PlaceWidget(double bounds[6]) override
Methods that satisfy the superclass' API.
double * GetPosition()
virtual void OnMouseMove()
void AllOff()
Convenience methods to turn outline and shadows on and off.
void GetPolyData(vtkPolyData *pd)
Grab the polydata (including points) that defines the point.
vtkPolyDataMapper * Mapper
static void ProcessEvents(vtkObject *object, unsigned long event, void *clientdata, void *calldata)
void TranslationModeOff()
~vtkPointWidget() override
void Highlight(int highlight)
void SetOutline(int o)
Turn on/off the wireframe bounding box.
void SetZShadows(int o)
Turn on/off the wireframe z-shadows.
vtkCursor3D * Cursor3D
int DetermineConstraintAxis(int constraint, double *x)
virtual void OnRightButtonDown()
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.
static vtkPointWidget * New()
Instantiate this widget.
virtual void OnLeftButtonUp()
void GetPosition(double xyz[3])
void Translate(double *p1, double *p2)
friend class vtkLineWidget
virtual void OnRightButtonUp()
void SetEnabled(int) override
Methods that satisfy the superclass' API.
void SetPosition(double x[3])
virtual void OnMiddleButtonUp()
virtual void OnMiddleButtonDown()
void SetPosition(double x, double y, double z)
Set/Get the position of the point.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkProperty * SelectedProperty
void RegisterPickers() override
Register internal Pickers in the Picking Manager.
void PlaceWidget() override
Methods that satisfy the superclass' API.
virtual void OnLeftButtonDown()
void PlaceWidget(double xmin, double xmax, double ymin, double ymax, double zmin, double zmax) override
Methods that satisfy the superclass' API.
vtkProperty * Property
void SetYShadows(int o)
Turn on/off the wireframe y-shadows.
vtkCellPicker * CursorPicker
void AllOn()
Convenience methods to turn outline and shadows on and off.
void Scale(double *p1, double *p2, int X, int Y)
void MoveFocus(double *p1, double *p2)
map vtkPolyData to graphics primitives
concrete dataset represents vertices, lines, polygons, and triangle strips
Definition vtkPolyData.h:85
represent surface properties of a geometric object
Definition vtkProperty.h:62
#define VTK_SIZEHINT(...)