VTK  9.5.2
vtkPointWidget.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
73
74#ifndef vtkPointWidget_h
75#define vtkPointWidget_h
76
77#include "vtk3DWidget.h"
78#include "vtkCursor3D.h" // Needed for faster access to the Cursor3D
79#include "vtkInteractionWidgetsModule.h" // For export macro
80
81VTK_ABI_NAMESPACE_BEGIN
82class vtkActor;
84class vtkCellPicker;
85class vtkPolyData;
86class vtkProperty;
87
88class VTKINTERACTIONWIDGETS_EXPORT vtkPointWidget : public vtk3DWidget
89{
90public:
95
97 void PrintSelf(ostream& os, vtkIndent indent) override;
98
100
103 void SetEnabled(int) override;
104 void PlaceWidget(double bounds[6]) override;
105 void PlaceWidget() override { this->Superclass::PlaceWidget(); }
107 double xmin, double xmax, double ymin, double ymax, double zmin, double zmax) override
108 {
109 this->Superclass::PlaceWidget(xmin, xmax, ymin, ymax, zmin, zmax);
110 }
111
112
118
124 void SetPosition(double x, double y, double z) { this->Cursor3D->SetFocalPoint(x, y, z); }
125 void SetPosition(double x[3]) { this->SetPosition(x[0], x[1], x[2]); }
126 double* GetPosition() VTK_SIZEHINT(3) { return this->Cursor3D->GetFocalPoint(); }
127 void GetPosition(double xyz[3]) { this->Cursor3D->GetFocalPoint(xyz); }
128
132 void SetOutline(int o) { this->Cursor3D->SetOutline(o); }
133 int GetOutline() { return this->Cursor3D->GetOutline(); }
134 void OutlineOn() { this->Cursor3D->OutlineOn(); }
135 void OutlineOff() { this->Cursor3D->OutlineOff(); }
136
140 void SetXShadows(int o) { this->Cursor3D->SetXShadows(o); }
141 int GetXShadows() { return this->Cursor3D->GetXShadows(); }
142 void XShadowsOn() { this->Cursor3D->XShadowsOn(); }
143 void XShadowsOff() { this->Cursor3D->XShadowsOff(); }
144
148 void SetYShadows(int o) { this->Cursor3D->SetYShadows(o); }
149 int GetYShadows() { return this->Cursor3D->GetYShadows(); }
150 void YShadowsOn() { this->Cursor3D->YShadowsOn(); }
151 void YShadowsOff() { this->Cursor3D->YShadowsOff(); }
152
156 void SetZShadows(int o) { this->Cursor3D->SetZShadows(o); }
157 int GetZShadows() { return this->Cursor3D->GetZShadows(); }
158 void ZShadowsOn() { this->Cursor3D->ZShadowsOn(); }
159 void ZShadowsOff() { this->Cursor3D->ZShadowsOff(); }
160
166 void SetTranslationMode(int mode)
167 {
168 this->Cursor3D->SetTranslationMode(mode);
169 this->Cursor3D->Update();
170 }
171 int GetTranslationMode() { return this->Cursor3D->GetTranslationMode(); }
174
176
179 void AllOn()
180 {
181 this->OutlineOn();
182 this->XShadowsOn();
183 this->YShadowsOn();
184 this->ZShadowsOn();
185 }
186 void AllOff()
187 {
188 this->OutlineOff();
189 this->XShadowsOff();
190 this->YShadowsOff();
191 this->ZShadowsOff();
192 }
193
194
196
201 vtkGetObjectMacro(Property, vtkProperty);
202 vtkGetObjectMacro(SelectedProperty, vtkProperty);
204
206
212 vtkSetClampMacro(HotSpotSize, double, 0.0, 1.0);
213 vtkGetMacro(HotSpotSize, double);
215
216protected:
218 ~vtkPointWidget() override;
219
220 // Manage the state of the widget
221 friend class vtkLineWidget;
222
223 int State;
232
233 // Handles the events
234 static void ProcessEvents(
235 vtkObject* object, unsigned long event, void* clientdata, void* calldata);
236
237 // ProcessEvents() dispatches to these methods.
238 virtual void OnMouseMove();
239 virtual void OnLeftButtonDown();
240 virtual void OnLeftButtonUp();
241 virtual void OnMiddleButtonDown();
242 virtual void OnMiddleButtonUp();
243 virtual void OnRightButtonDown();
244 virtual void OnRightButtonUp();
245
246 // the cursor3D
250 void Highlight(int highlight);
251
252 // Do the picking
254
255 // Register internal Pickers within PickingManager
256 void RegisterPickers() override;
257
258 // Methods to manipulate the cursor
260 void Translate(double* p1, double* p2);
261 void Scale(double* p1, double* p2, int X, int Y);
262 void MoveFocus(double* p1, double* p2);
264
265 // Properties used to control the appearance of selected objects and
266 // the manipulator in general.
270
271 // The size of the hot spot.
273 int DetermineConstraintAxis(int constraint, double* x);
276
277private:
278 vtkPointWidget(const vtkPointWidget&) = delete;
279 void operator=(const vtkPointWidget&) = delete;
280};
281
282VTK_ABI_NAMESPACE_END
283#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:151
ray-cast cell picker for all kinds of Prop3Ds
generate a 3D cursor representation
Definition vtkCursor3D.h:48
a simple class to control print indentation
Definition vtkIndent.h:108
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
represent surface properties of a geometric object
#define VTK_SIZEHINT(...)