Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

Rendering/vtkAbstractPicker.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkAbstractPicker.h,v $
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00057 #ifndef __vtkAbstractPicker_h
00058 #define __vtkAbstractPicker_h
00059 
00060 #include "vtkObject.h"
00061 
00062 class vtkRenderer;
00063 class vtkProp;
00064 class vtkPropCollection;
00065 
00066 class VTK_RENDERING_EXPORT vtkAbstractPicker : public vtkObject
00067 {
00068 public:
00069   vtkTypeRevisionMacro(vtkAbstractPicker,vtkObject);
00070   void PrintSelf(ostream& os, vtkIndent indent);
00071 
00073 
00074   vtkGetObjectMacro(Renderer,vtkRenderer);
00076 
00078 
00080   vtkGetVectorMacro(SelectionPoint,double,3);
00082 
00084 
00085   vtkGetVectorMacro(PickPosition,double,3);
00087 
00089 
00093   virtual int Pick(double selectionX, double selectionY, double selectionZ, 
00094                    vtkRenderer *renderer) = 0;
00096 
00098 
00101   int Pick(double selectionPt[3], vtkRenderer *ren)
00102     {return this->Pick(selectionPt[0],selectionPt[1],selectionPt[2],ren);};  
00104 
00106 
00109   vtkSetMacro(PickFromList,int);
00110   vtkGetMacro(PickFromList,int);
00111   vtkBooleanMacro(PickFromList,int);
00113 
00115   void InitializePickList();
00116 
00118   void AddPickList(vtkProp *);
00119 
00121   void DeletePickList(vtkProp *);
00122   
00124   vtkPropCollection *GetPickList() {return this->PickList;}
00125 
00126 protected:
00127   vtkAbstractPicker();
00128   ~vtkAbstractPicker();
00129 
00130   virtual void Initialize();
00131 
00132   vtkRenderer *Renderer; //pick occurred in this renderer's viewport
00133   double SelectionPoint[3]; //selection point in window (pixel) coordinates
00134   double PickPosition[3]; //selection point in world coordinates
00135   
00136   // use the following to control picking from a list
00137   int PickFromList;
00138   vtkPropCollection *PickList;
00139 private:
00140   vtkAbstractPicker(const vtkAbstractPicker&);  // Not implemented.
00141   void operator=(const vtkAbstractPicker&);  // Not implemented.
00142 };
00143 
00144 #endif
00145 
00146