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
00083 #ifndef __vtkAbstractPicker_h
00084 #define __vtkAbstractPicker_h
00085
00086 #include "vtkObject.h"
00087 #include "vtkRenderer.h"
00088
00089 class VTK_EXPORT vtkAbstractPicker : public vtkObject
00090 {
00091 public:
00092 vtkTypeMacro(vtkAbstractPicker,vtkObject);
00093 void PrintSelf(ostream& os, vtkIndent indent);
00094
00096 vtkGetObjectMacro(Renderer,vtkRenderer);
00097
00100 vtkGetVectorMacro(SelectionPoint,float,3);
00101
00103 vtkGetVectorMacro(PickPosition,float,3);
00104
00109 virtual int Pick(float selectionX, float selectionY, float selectionZ,
00110 vtkRenderer *renderer) = 0;
00111
00115 int Pick(float selectionPt[3], vtkRenderer *ren)
00116 {return this->Pick(selectionPt[0],selectionPt[1],selectionPt[2],ren);};
00117
00119 void SetStartPickMethod(void (*f)(void *), void *arg);
00120
00122 void SetPickMethod(void (*f)(void *), void *arg);
00123
00126 void SetEndPickMethod(void (*f)(void *), void *arg);
00127
00129 void SetStartPickMethodArgDelete(void (*f)(void *));
00130
00132 void SetPickMethodArgDelete(void (*f)(void *));
00133
00135 void SetEndPickMethodArgDelete(void (*f)(void *));
00136
00140 vtkSetMacro(PickFromList,int);
00141 vtkGetMacro(PickFromList,int);
00142 vtkBooleanMacro(PickFromList,int);
00143
00145 void InitializePickList();
00146
00148 void AddPickList(vtkProp *);
00149
00151 void DeletePickList(vtkProp *);
00152
00154 vtkPropCollection *GetPickList() {return this->PickList;}
00155
00156 protected:
00157 vtkAbstractPicker();
00158 ~vtkAbstractPicker();
00159 vtkAbstractPicker(const vtkAbstractPicker&) {};
00160 void operator=(const vtkAbstractPicker&) {};
00161
00162 virtual void Initialize();
00163
00164 vtkRenderer *Renderer;
00165 float SelectionPoint[3];
00166 float PickPosition[3];
00167
00168
00169 void (*StartPickMethod)(void *);
00170 void (*StartPickMethodArgDelete)(void *);
00171 void *StartPickMethodArg;
00172 void (*PickMethod)(void *);
00173 void *PickMethodArg;
00174 void (*PickMethodArgDelete)(void *);
00175 void (*EndPickMethod)(void *);
00176 void (*EndPickMethodArgDelete)(void *);
00177 void *EndPickMethodArg;
00178
00179
00180 int PickFromList;
00181 vtkPropCollection *PickList;
00182 };
00183
00184 #endif
00185
00186