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