00001 // This is core/vgui/vgui_displaylist3D_tableau.h 00002 #ifndef vgui_displaylist3D_tableau_h_ 00003 #define vgui_displaylist3D_tableau_h_ 00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE 00005 #pragma interface 00006 #endif 00007 //: 00008 // \file 00009 // \brief Displaying of three-dimensional geometric objects. 00010 // \author Philip C. Pritchett, Robotics Research Group, University of Oxford 00011 // \date 14 Sep 99 00012 // 00013 // \verbatim 00014 // Modifications 00015 // 14-SEP-1999 P.Pritchett - Initial version. 00016 // 01-OCT-2002 K.Y.McGaul - Moved displaylist3D to displaylist3D_tableau. 00017 // 02-OCT-2002 K.Y.McGaul - Added vgui_displaylist3D_tableau_new. 00018 // \endverbatim 00019 00020 #include <vgui/vgui_displaybase_tableau.h> 00021 #include <vgui/vgui_displaylist3D_tableau_sptr.h> 00022 #include <vgui/vgui_drag_mixin.h> 00023 00024 class vgui_soview3D; 00025 00026 //: Displaying of three-dimensional geometric objects 00027 class vgui_displaylist3D_tableau : public vgui_displaybase_tableau, public vgui_drag_mixin 00028 { 00029 public: 00030 //: Constructor - don't use this, use vgui_displaylist3D_tableau_new. 00031 vgui_displaylist3D_tableau() {} 00032 00033 vcl_string type_name() const { return "vgui_displaylist3D_tableau"; } 00034 00035 bool handle(const vgui_event& e); 00036 bool mouse_down(int x, int y, vgui_button button, vgui_modifier modifier); 00037 00038 protected: 00039 //: Destructor - called by vgui_displaylist3D_tableau_sptr. 00040 ~vgui_displaylist3D_tableau() {} 00041 00042 private: 00043 void get_hits(float x, float y, vcl_vector<unsigned>& my_hits); 00044 }; 00045 00046 //: Creates a smart-pointer to a vgui_displaylist3D_tableau. 00047 struct vgui_displaylist3D_tableau_new : public vgui_displaylist3D_tableau_sptr 00048 { 00049 //: Constructor - create a default vgui_displaylist3D_tableau. 00050 vgui_displaylist3D_tableau_new( ) 00051 : vgui_displaylist3D_tableau_sptr(new vgui_displaylist3D_tableau) {} 00052 }; 00053 00054 #endif // vgui_displaylist3D_tableau_h_