contrib/brl/bbas/bgui/bgui_vtol_soview2D.h
Go to the documentation of this file.
00001 //this-sets-emacs-to-*-c++-*-mode
00002 #ifndef bgui_vtol_soview2D_h_
00003 #define bgui_vtol_soview2D_h_
00004 //--------------------------------------------------------------------------------
00005 //:
00006 // \file
00007 // \brief A collection of vgui_soview2D objects that form views of vtol topology objects
00008 // \author
00009 //   J.L. Mundy
00010 //
00011 // \verbatim
00012 //  Modifications:
00013 //   J.L. Mundy November 28, 2002    Initial version.
00014 // \endverbatim
00015 //--------------------------------------------------------------------------------
00016 #include <vcl_vector.h>
00017 #include <vcl_iosfwd.h>
00018 #include <vsol/vsol_line_2d_sptr.h>
00019 #include <vdgl/vdgl_digital_curve_sptr.h>
00020 #include <vtol/vtol_edge_2d.h>
00021 #include <vtol/vtol_edge_2d_sptr.h>
00022 #include <vtol/vtol_face_2d_sptr.h>
00023 #include <vgui/vgui_soview2D.h>
00024 
00025 //: vsol_point_2d
00026 // This view is essentially the same as a point the only difference
00027 // is style. Probably move to a geometry tableau later
00028 class bgui_vtol_soview2D_point : public vgui_soview2D_point
00029 {
00030  public:
00031   //: Constructor - creates a default vsol_point_2d view
00032   bgui_vtol_soview2D_point(){}
00033 
00034   //: Print details about this vtol_point to the given stream.
00035   virtual vcl_ostream& print(vcl_ostream&) const;
00036 
00037   //: Returns the type of this class ('bgui_vtol_soview2D_point').
00038   vcl_string type_name() const { return "bgui_vtol_soview2D_point"; }
00039 };
00040 
00041 //: vdgl_dotted_digital_curve (maybe later move to a geometry tableau)
00042 // This one displays points
00043 class bgui_vtol_soview2D_dotted_digital_curve : public vgui_soview2D_group
00044 {
00045  public:
00046   //: Constructor - creates a default vdgl_digital_curve view
00047   bgui_vtol_soview2D_dotted_digital_curve() {;}
00048 
00049   //: Constructor - creates a view of a vdgl_digital_curve
00050   bgui_vtol_soview2D_dotted_digital_curve(vdgl_digital_curve_sptr const& e);
00051 
00052   //: Print details about this vdgl_digital_curve to the given stream.
00053   virtual vcl_ostream& print(vcl_ostream&) const;
00054 
00055   //: Returns the type of this class ('bgui_vtol_soview2D_dotted_digital_curve').
00056   vcl_string type_name() const { return "bgui_vtol_soview2D_dotted_digital_curve"; }
00057 };
00058 
00059 //: vdgl_digital_curve (maybe later move to a geometry tableau)
00060 class bgui_vtol_soview2D_digital_curve : public vgui_soview2D_linestrip
00061 {
00062  public:
00063   //: Constructor - creates a default vdgl_digital_curve view
00064   bgui_vtol_soview2D_digital_curve() {;}
00065 
00066   //: Constructor - creates a view of a vdgl_digital_curve
00067   bgui_vtol_soview2D_digital_curve(vdgl_digital_curve_sptr const& e);
00068 
00069   //: Print details about this vdgl_digital_curve to the given stream.
00070   virtual vcl_ostream& print(vcl_ostream&) const;
00071 
00072   //: Returns the type of this class ('bgui_vtol_soview2D_digital_curve').
00073   vcl_string type_name() const { return "bgui_vtol_soview2D_digital_curve"; }
00074 };
00075 
00076 //: vtol_vertex_2d
00077 // This view is essentially the same as a point the only difference
00078 // would be style, which we will tackle later
00079 class bgui_vtol_soview2D_vertex : public vgui_soview2D_point
00080 {
00081  public:
00082   //: Constructor - creates a default vertex_2d view
00083   bgui_vtol_soview2D_vertex(){}
00084 
00085   //: Print details about this vtol_vertex_2d to the given stream.
00086   virtual vcl_ostream& print(vcl_ostream&) const;
00087 
00088   //: Returns the type of this class ('bgui_vtol_soview2D_vertex').
00089   vcl_string type_name() const { return "bgui_vtol_soview2D_vertex"; }
00090 };
00091 
00092 class bgui_vtol_soview2D_line_seg : public vgui_soview2D_lineseg
00093 {
00094  public:
00095   //: Constructor - creates a default edge_2d view
00096   bgui_vtol_soview2D_line_seg() {}
00097 
00098   //: Constructor - creates a view of a given vtol_edge_2d
00099   bgui_vtol_soview2D_line_seg(vsol_line_2d_sptr const& seg);
00100 
00101   //: Returns the type of this class ('bgui_vtol_soview2D_edge').
00102   vcl_string type_name() const { return "bgui_vtol_soview2D_line_seg"; }
00103 };
00104 
00105 class bgui_vtol_soview2D_edge : public vgui_soview2D_linestrip
00106 {
00107  public:
00108   //: Constructor - creates a default edge_2d view
00109   bgui_vtol_soview2D_edge() {}
00110 
00111   //: Constructor - creates a view of a given vtol_edge_2d
00112   bgui_vtol_soview2D_edge(vtol_edge_2d_sptr const& e);
00113 
00114   //: Print details about this vtol_edge_2d to the given stream.
00115   virtual vcl_ostream& print(vcl_ostream&) const;
00116 
00117   //: Returns the type of this class ('bgui_vtol_soview2D_edge').
00118   vcl_string type_name() const { return "bgui_vtol_soview2D_edge"; }
00119 };
00120 
00121 class bgui_vtol_soview2D_edge_group : public vgui_soview2D_group
00122 {
00123  public:
00124   //: Constructor - creates a default vtol_edge_2d_group view
00125   bgui_vtol_soview2D_edge_group() {}
00126 
00127   //: Constructor - creates a view of a vtol_edge_2d group
00128   bgui_vtol_soview2D_edge_group(vcl_vector<vtol_edge_2d_sptr>& edges);
00129 
00130   //: Print details about this vtol_edge_2d  group to the given stream.
00131   virtual vcl_ostream& print(vcl_ostream&) const;
00132 
00133   //: Returns the type of this class ('bgui_vtol_soview2D_edge_group').
00134   vcl_string type_name() const { return "bgui_vtol_soview2D_edge_group"; }
00135 };
00136 
00137 class bgui_vtol_soview2D_face : public vgui_soview2D_group
00138 {
00139  public:
00140   //: Constructor - creates a default vtol_face_2d view
00141   bgui_vtol_soview2D_face() {}
00142 
00143   //: Constructor - creates a view of a vtol_face_2d
00144   bgui_vtol_soview2D_face(vtol_face_2d_sptr const& f);
00145 
00146   //: Print details about this vtol_face_2d to the given stream.
00147   virtual vcl_ostream& print(vcl_ostream&) const;
00148 
00149   //: Returns the type of this class ('bgui_vtol_soview2D_face').
00150   vcl_string type_name() const { return "bgui_vtol_soview2D_face"; }
00151 };
00152 
00153 #endif // bgui_vtol_soview2D_h_