VTK
vtkAbstractPicker.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkAbstractPicker.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=========================================================================*/
58#ifndef vtkAbstractPicker_h
59#define vtkAbstractPicker_h
60
61#include "vtkRenderingCoreModule.h" // For export macro
62#include "vtkObject.h"
63
64class vtkRenderer;
65class vtkProp;
67
68class VTKRENDERINGCORE_EXPORT vtkAbstractPicker : public vtkObject
69{
70public:
72 void PrintSelf(ostream& os, vtkIndent indent);
73
75
78 vtkGetObjectMacro(Renderer,vtkRenderer);
80
82
86 vtkGetVectorMacro(SelectionPoint,double,3);
88
90
93 vtkGetVectorMacro(PickPosition,double,3);
95
102 virtual int Pick(double selectionX, double selectionY, double selectionZ,
103 vtkRenderer *renderer) = 0;
104
110 int Pick(double selectionPt[3], vtkRenderer *ren)
111 {return this->Pick(selectionPt[0],selectionPt[1],selectionPt[2],ren);};
112
114
119 vtkSetMacro(PickFromList,int);
120 vtkGetMacro(PickFromList,int);
121 vtkBooleanMacro(PickFromList,int);
123
128
133
138
142 vtkPropCollection *GetPickList() {return this->PickList;}
143
144protected:
147
148 virtual void Initialize();
149
150 vtkRenderer *Renderer; //pick occurred in this renderer's viewport
151 double SelectionPoint[3]; //selection point in window (pixel) coordinates
152 double PickPosition[3]; //selection point in world coordinates
153
154 // use the following to control picking from a list
157private:
158 vtkAbstractPicker(const vtkAbstractPicker&) VTK_DELETE_FUNCTION;
159 void operator=(const vtkAbstractPicker&) VTK_DELETE_FUNCTION;
160};
161
162#endif
163
164
define API for picking subclasses
vtkRenderer * Renderer
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 void Initialize()
void DeletePickList(vtkProp *)
Delete an actor from the pick list.
void AddPickList(vtkProp *)
Add an actor to the pick list.
void InitializePickList()
Initialize list of actors in pick list.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
int Pick(double selectionPt[3], vtkRenderer *ren)
provided.
vtkPropCollection * PickList
a simple class to control print indentation
Definition: vtkIndent.h:40
abstract base class for most VTK objects
Definition: vtkObject.h:60
a list of Props
abstract superclass for all actors, volumes and annotations
Definition: vtkProp.h:48
abstract specification for renderers
Definition: vtkRenderer.h:64
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.