00001 // This is gel/gst/gst_face_2d.h 00002 #ifndef gst_face_2d_h_ 00003 #define gst_face_2d_h_ 00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE 00005 #pragma interface 00006 #endif 00007 //: 00008 // \file 00009 // \author crossge@crd.ge.com 00010 00011 #include <vcl_vector.h> 00012 #include "gst_polygon_2d_sptr.h" 00013 00014 //: This class defines a simplified topology structure in 2D. 00015 // It is light weight, and all interfacing should be done through the 00016 // face class 00017 00018 class gst_face_2d 00019 { 00020 public: 00021 00022 gst_face_2d( gst_polygon_2d_sptr polygon); 00023 gst_face_2d( gst_polygon_2d_sptr polygon, const vcl_vector<gst_polygon_2d_sptr> &holes); 00024 ~gst_face_2d(); 00025 00026 protected: 00027 00028 // outside edge list 00029 gst_polygon_2d_sptr outside_; 00030 00031 // list of holes 00032 vcl_vector<gst_polygon_2d_sptr> holes_; 00033 }; 00034 00035 #endif // gst_face_2d_h_