Rendering/vtkAbstractPicker.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00073 #ifndef __vtkAbstractPicker_h
00074 #define __vtkAbstractPicker_h
00075
00076 #include "vtkObject.h"
00077
00078 class vtkRenderer;
00079 class vtkProp;
00080 class vtkPropCollection;
00081
00082 class VTK_RENDERING_EXPORT vtkAbstractPicker : public vtkObject
00083 {
00084 public:
00085 vtkTypeRevisionMacro(vtkAbstractPicker,vtkObject);
00086 void PrintSelf(ostream& os, vtkIndent indent);
00087
00089
00090 vtkGetObjectMacro(Renderer,vtkRenderer);
00092
00094
00096 vtkGetVectorMacro(SelectionPoint,float,3);
00098
00100
00101 vtkGetVectorMacro(PickPosition,float,3);
00103
00105
00109 virtual int Pick(float selectionX, float selectionY, float selectionZ,
00110 vtkRenderer *renderer) = 0;
00112
00114
00117 int Pick(float selectionPt[3], vtkRenderer *ren)
00118 {return this->Pick(selectionPt[0],selectionPt[1],selectionPt[2],ren);};
00120
00122 void SetStartPickMethod(void (*f)(void *), void *arg);
00123
00125 void SetPickMethod(void (*f)(void *), void *arg);
00126
00129 void SetEndPickMethod(void (*f)(void *), void *arg);
00130
00132 void SetStartPickMethodArgDelete(void (*f)(void *));
00133
00135 void SetPickMethodArgDelete(void (*f)(void *));
00136
00138 void SetEndPickMethodArgDelete(void (*f)(void *));
00139
00141
00144 vtkSetMacro(PickFromList,int);
00145 vtkGetMacro(PickFromList,int);
00146 vtkBooleanMacro(PickFromList,int);
00148
00150 void InitializePickList();
00151
00153 void AddPickList(vtkProp *);
00154
00156 void DeletePickList(vtkProp *);
00157
00159 vtkPropCollection *GetPickList() {return this->PickList;}
00160
00161 protected:
00162 vtkAbstractPicker();
00163 ~vtkAbstractPicker();
00164
00165 virtual void Initialize();
00166
00167 vtkRenderer *Renderer;
00168 float SelectionPoint[3];
00169 float PickPosition[3];
00170
00171
00172 unsigned long StartPickTag;
00173 unsigned long PickTag;
00174 unsigned long EndPickTag;
00175
00176
00177 int PickFromList;
00178 vtkPropCollection *PickList;
00179 private:
00180 vtkAbstractPicker(const vtkAbstractPicker&);
00181 void operator=(const vtkAbstractPicker&);
00182 };
00183
00184 #endif
00185
00186