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 =========================================================================*/
57 #ifndef __vtkAbstractPicker_h
58 #define __vtkAbstractPicker_h
59 
60 #include "vtkObject.h"
61 
62 class vtkRenderer;
63 class vtkProp;
64 class vtkPropCollection;
65 
67 {
68 public:
70  void PrintSelf(ostream& os, vtkIndent indent);
71 
73 
74  vtkGetObjectMacro(Renderer,vtkRenderer);
76 
78 
80  vtkGetVectorMacro(SelectionPoint,double,3);
82 
84 
85  vtkGetVectorMacro(PickPosition,double,3);
87 
89 
93  virtual int Pick(double selectionX, double selectionY, double selectionZ,
94  vtkRenderer *renderer) = 0;
96 
98 
101  int Pick(double selectionPt[3], vtkRenderer *ren)
102  {return this->Pick(selectionPt[0],selectionPt[1],selectionPt[2],ren);};
104 
106 
109  vtkSetMacro(PickFromList,int);
110  vtkGetMacro(PickFromList,int);
111  vtkBooleanMacro(PickFromList,int);
113 
115  void InitializePickList();
116 
118  void AddPickList(vtkProp *);
119 
121  void DeletePickList(vtkProp *);
122 
124  vtkPropCollection *GetPickList() {return this->PickList;}
125 
126 protected:
129 
130  virtual void Initialize();
131 
132  vtkRenderer *Renderer; //pick occurred in this renderer's viewport
133  double SelectionPoint[3]; //selection point in window (pixel) coordinates
134  double PickPosition[3]; //selection point in world coordinates
135 
136  // use the following to control picking from a list
139 private:
140  vtkAbstractPicker(const vtkAbstractPicker&); // Not implemented.
141  void operator=(const vtkAbstractPicker&); // Not implemented.
142 };
143 
144 #endif
145 
146