VTK  9.7.20260805
vtkAbstractPicker.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
45
46#ifndef vtkAbstractPicker_h
47#define vtkAbstractPicker_h
48
49#include "vtkObject.h"
50#include "vtkRenderingCoreModule.h" // For export macro
51#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
52
53VTK_ABI_NAMESPACE_BEGIN
54class vtkRenderer;
55class vtkProp;
57
58class VTKRENDERINGCORE_EXPORT VTK_MARSHALAUTO vtkAbstractPicker : public vtkObject
59{
60public:
62 void PrintSelf(ostream& os, vtkIndent indent) override;
63
65
68 vtkGetObjectMacro(Renderer, vtkRenderer);
70
72
76 vtkGetVectorMacro(SelectionPoint, double, 3);
78
80
83 vtkGetVectorMacro(PickPosition, double, 3);
85
92 virtual int Pick(
93 double selectionX, double selectionY, double selectionZ, vtkRenderer* renderer) = 0;
94
100 int Pick(VTK_FUTURE_CONST double selectionPt[3], vtkRenderer* ren)
101 {
102 return this->Pick(selectionPt[0], selectionPt[1], selectionPt[2], ren);
103 }
104
110 virtual int Pick3DPoint(VTK_FUTURE_CONST double /* selectionPt */[3], vtkRenderer* /*ren*/)
111 {
112 vtkErrorMacro("Pick3DPoint called without implementation");
113 return 0;
114 }
115
121 virtual int Pick3DRay(VTK_FUTURE_CONST double /* selectionPt */[3],
122 VTK_FUTURE_CONST double /* orient */[4], vtkRenderer* /*ren*/)
123 {
124 vtkErrorMacro("Pick3DRay called without implementation");
125 return 0;
126 }
127
129
136 vtkBooleanMacro(PickFromList, vtkTypeBool);
138
143
148
153
158
159protected:
162
163 virtual void Initialize();
164
165 vtkRenderer* Renderer; // pick occurred in this renderer's viewport
166 double SelectionPoint[3]; // selection point in window (pixel) coordinates
167 double PickPosition[3]; // selection point in world coordinates
168
169 // use the following to control picking from a list
172
173private:
174 vtkAbstractPicker(const vtkAbstractPicker&) = delete;
175 void operator=(const vtkAbstractPicker&) = delete;
176};
177
178VTK_ABI_NAMESPACE_END
179#endif
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual int Pick3DRay(VTK_FUTURE_CONST double[3], VTK_FUTURE_CONST double[4], vtkRenderer *)
Perform pick operation with selection point and orientation provided.
virtual int Pick(double selectionX, double selectionY, double selectionZ, vtkRenderer *renderer)=0
Perform pick operation with selection point provided.
vtkPropCollection * GetPickList()
Return the list of actors in the PickList.
virtual int Pick3DPoint(VTK_FUTURE_CONST double[3], vtkRenderer *)
Perform pick operation with selection point provided.
virtual void Initialize()
int Pick(VTK_FUTURE_CONST double selectionPt[3], vtkRenderer *ren)
provided.
void DeletePickList(vtkProp *)
Delete an actor from the pick list.
~vtkAbstractPicker() override
void AddPickList(vtkProp *)
Add an actor to the pick list.
void InitializePickList()
Initialize list of actors in pick list.
vtkPropCollection * PickList
a simple class to control print indentation
Definition vtkIndent.h:29
an ordered list of Props
abstract superclass for all actors, volumes and annotations
Definition vtkProp.h:49
abstract specification for renderers
Definition vtkRenderer.h:64
int vtkTypeBool
Definition vtkABI.h:64
#define VTK_MARSHALAUTO