00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef __mitkPickManipulator_h
00013 #define __mitkPickManipulator_h
00014
00015 #include "mitkWidgetModel.h"
00016 #include "mitkManipulator.h"
00017
00018 const int MITK_PICK_BUFFER_SIZE = 128;
00019
00050 class MITK_VISUALIZATION_API mitkPickManipulator : public mitkManipulator
00051 {
00052 public:
00053 MITK_TYPE(mitkPickManipulator, mitkManipulator)
00054
00055 virtual void PrintSelf(ostream &os);
00056
00057 mitkPickManipulator();
00058 mitkPickManipulator(mitkScene *scene);
00059
00063 void ClearPickResult();
00064
00069 mitkWidgetModel* GetPickedObject() { return m_PickedWidgets.owner; }
00070
00071 protected:
00072 virtual ~mitkPickManipulator();
00073
00074
00075 bool _pick(int xPos, int yPos);
00076
00077
00078 void _selectRender();
00079
00080
00081 bool _processHits(GLint hits);
00082
00083
00084 void _init();
00085
00086 WidgetNames m_PickedWidgets;
00087 GLuint m_PickBuffer[MITK_PICK_BUFFER_SIZE];
00088 GLdouble m_PickBox;
00089
00090 bool m_EnableDepthTest;
00091
00092 private:
00093 mitkPickManipulator(const mitkPickManipulator&);
00094 void operator = (const mitkPickManipulator&);
00095
00096 };
00097
00098
00099
00100
00101
00102
00103 #endif
00104