1 // This is core/vgui/vgui_soview3D.h 2 #ifndef vgui_soview3D_h_ 3 #define vgui_soview3D_h_ 4 //: 5 // \file 6 // \author Philip C. Pritchett, Robotics Research Group, University of Oxford 7 // \date 24 Mar 99 8 // \brief 3-dimensional spatial object view. 9 // 10 // Contains classes: vgui_soview3D vgui_point3D vgui_linseg3D 11 // Notes: We use floats instead of doubles as size is a speed issue (sic.) 12 // 13 14 #include <iosfwd> 15 #include "vgui_soview.h" 16 #ifdef _MSC_VER 17 # include <vcl_msvc_warnings.h> 18 #endif 19 20 //: 3-dimensional spatial object view. 21 class vgui_soview3D : public vgui_soview 22 { 23 public: vgui_soview3D()24 vgui_soview3D() {} ~vgui_soview3D()25 virtual ~vgui_soview3D() {} 26 }; 27 28 29 //: 3-dimensional point. 30 class vgui_point3D : public vgui_soview3D 31 { 32 public: vgui_point3D()33 vgui_point3D() {} vgui_point3D(float x_,float y_,float z_)34 vgui_point3D(float x_, float y_, float z_) : vgui_soview3D(), x(x_), y(y_), z(z_) {} 35 36 virtual void draw() const; 37 virtual std::ostream& print(std::ostream&) const; type_name()38 std::string type_name() const { return "vgui_point3D"; } 39 40 float x,y,z; 41 }; 42 43 44 //: 3-dimensional line segment. 45 class vgui_lineseg3D : public vgui_soview3D 46 { 47 public: vgui_lineseg3D()48 vgui_lineseg3D() {} vgui_lineseg3D(float x0_,float y0_,float z0_,float x1_,float y1_,float z1_)49 vgui_lineseg3D( float x0_, float y0_, float z0_, 50 float x1_, float y1_, float z1_ ) 51 : x0(x0_), y0(y0_), z0(z0_), x1(x1_), y1(y1_), z1(z1_) {} 52 53 virtual void draw() const; 54 virtual std::ostream& print(std::ostream&) const; type_name()55 std::string type_name() const { return "vgui_lineseg3D"; } 56 57 float x0, y0, z0, x1, y1, z1; 58 }; 59 60 61 //: 3-dimensional line segment. 62 class vgui_triangle3D : public vgui_soview3D 63 { 64 public: vgui_triangle3D()65 vgui_triangle3D() {} vgui_triangle3D(float x0_,float y0_,float z0_,float x1_,float y1_,float z1_,float x2_,float y2_,float z2_)66 vgui_triangle3D( float x0_, float y0_, float z0_, 67 float x1_, float y1_, float z1_, 68 float x2_, float y2_, float z2_ ) 69 : x0(x0_), y0(y0_), z0(z0_), 70 x1(x1_), y1(y1_), z1(z1_), 71 x2(x2_), y2(y2_), z2(z2_) {} 72 73 virtual void draw() const; 74 virtual std::ostream& print(std::ostream&) const; type_name()75 std::string type_name() const { return "vgui_triangle3D"; } 76 77 float x0, y0, z0, x1, y1, z1, x2, y2, z2; 78 }; 79 80 81 #endif // vgui_soview3D_h_ 82