00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00084 #ifndef __vtkAbstractPicker_h
00085 #define __vtkAbstractPicker_h
00086
00087 #include "vtkObject.h"
00088 #include "vtkRenderer.h"
00089
00090 class VTK_RENDERING_EXPORT vtkAbstractPicker : public vtkObject
00091 {
00092 public:
00093 vtkTypeMacro(vtkAbstractPicker,vtkObject);
00094 void PrintSelf(ostream& os, vtkIndent indent);
00095
00097
00098 vtkGetObjectMacro(Renderer,vtkRenderer);
00100
00102
00104 vtkGetVectorMacro(SelectionPoint,float,3);
00106
00108
00109 vtkGetVectorMacro(PickPosition,float,3);
00111
00113
00117 virtual int Pick(float selectionX, float selectionY, float selectionZ,
00118 vtkRenderer *renderer) = 0;
00120
00122
00125 int Pick(float selectionPt[3], vtkRenderer *ren)
00126 {return this->Pick(selectionPt[0],selectionPt[1],selectionPt[2],ren);};
00128
00130 void SetStartPickMethod(void (*f)(void *), void *arg);
00131
00133 void SetPickMethod(void (*f)(void *), void *arg);
00134
00137 void SetEndPickMethod(void (*f)(void *), void *arg);
00138
00140 void SetStartPickMethodArgDelete(void (*f)(void *));
00141
00143 void SetPickMethodArgDelete(void (*f)(void *));
00144
00146 void SetEndPickMethodArgDelete(void (*f)(void *));
00147
00149
00152 vtkSetMacro(PickFromList,int);
00153 vtkGetMacro(PickFromList,int);
00154 vtkBooleanMacro(PickFromList,int);
00156
00158 void InitializePickList();
00159
00161 void AddPickList(vtkProp *);
00162
00164 void DeletePickList(vtkProp *);
00165
00167 vtkPropCollection *GetPickList() {return this->PickList;}
00168
00169 protected:
00170 vtkAbstractPicker();
00171 ~vtkAbstractPicker();
00172
00173 virtual void Initialize();
00174
00175 vtkRenderer *Renderer;
00176 float SelectionPoint[3];
00177 float PickPosition[3];
00178
00179
00180 unsigned long StartPickTag;
00181 unsigned long PickTag;
00182 unsigned long EndPickTag;
00183
00184
00185 int PickFromList;
00186 vtkPropCollection *PickList;
00187 private:
00188 vtkAbstractPicker(const vtkAbstractPicker&);
00189 void operator=(const vtkAbstractPicker&);
00190 };
00191
00192 #endif
00193
00194