00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
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;
00156 float SelectionPoint[3];
00157 float PickPosition[3];
00158
00159
00160 unsigned long StartPickTag;
00161 unsigned long PickTag;
00162 unsigned long EndPickTag;
00163
00164
00165 int PickFromList;
00166 vtkPropCollection *PickList;
00167
private:
00168 vtkAbstractPicker(
const vtkAbstractPicker&);
00169
void operator=(
const vtkAbstractPicker&);
00170 };
00171
00172
#endif
00173
00174