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

dox/Rendering/vtkAbstractPicker.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkAbstractPicker.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00061 #ifndef __vtkAbstractPicker_h 00062 #define __vtkAbstractPicker_h 00063 00064 #include "vtkObject.h" 00065 00066 class vtkRenderer; 00067 class vtkProp; 00068 class vtkPropCollection; 00069 00070 class VTK_RENDERING_EXPORT vtkAbstractPicker : public vtkObject 00071 { 00072 public: 00073 vtkTypeRevisionMacro(vtkAbstractPicker,vtkObject); 00074 void PrintSelf(ostream& os, vtkIndent indent); 00075 00077 00078 vtkGetObjectMacro(Renderer,vtkRenderer); 00080 00082 00084 vtkGetVectorMacro(SelectionPoint,float,3); 00086 00088 00089 vtkGetVectorMacro(PickPosition,float,3); 00091 00093 00097 virtual int Pick(float selectionX, float selectionY, float selectionZ, 00098 vtkRenderer *renderer) = 0; 00100 00102 00105 int Pick(float selectionPt[3], vtkRenderer *ren) 00106 {return this->Pick(selectionPt[0],selectionPt[1],selectionPt[2],ren);}; 00108 00110 void SetStartPickMethod(void (*f)(void *), void *arg); 00111 00113 void SetPickMethod(void (*f)(void *), void *arg); 00114 00117 void SetEndPickMethod(void (*f)(void *), void *arg); 00118 00120 void SetStartPickMethodArgDelete(void (*f)(void *)); 00121 00123 void SetPickMethodArgDelete(void (*f)(void *)); 00124 00126 void SetEndPickMethodArgDelete(void (*f)(void *)); 00127 00129 00132 vtkSetMacro(PickFromList,int); 00133 vtkGetMacro(PickFromList,int); 00134 vtkBooleanMacro(PickFromList,int); 00136 00138 void InitializePickList(); 00139 00141 void AddPickList(vtkProp *); 00142 00144 void DeletePickList(vtkProp *); 00145 00147 vtkPropCollection *GetPickList() {return this->PickList;} 00148 00149 protected: 00150 vtkAbstractPicker(); 00151 ~vtkAbstractPicker(); 00152 00153 virtual void Initialize(); 00154 00155 vtkRenderer *Renderer; //pick occurred in this renderer's viewport 00156 float SelectionPoint[3]; //selection point in window (pixel) coordinates 00157 float PickPosition[3]; //selection point in world coordinates 00158 00159 // the following are used to manage invocation of pick methods 00160 unsigned long StartPickTag; 00161 unsigned long PickTag; 00162 unsigned long EndPickTag; 00163 00164 // use the following to control picking from a list 00165 int PickFromList; 00166 vtkPropCollection *PickList; 00167 private: 00168 vtkAbstractPicker(const vtkAbstractPicker&); // Not implemented. 00169 void operator=(const vtkAbstractPicker&); // Not implemented. 00170 }; 00171 00172 #endif 00173 00174