00001 // This is gel/vifa/vifa_bbox.h 00002 #ifndef _VIFA_BBOX_H_ 00003 #define _VIFA_BBOX_H_ 00004 //----------------------------------------------------------------------------- 00005 //: 00006 // \file 00007 // \brief Timestamped 2D bounding box 00008 // 00009 // The vifa_bbox class is a timestamped 2D bounding box (vgl/vgl_box_2d) used 00010 // by the vifa_group_pgram class to efficiently compute the bounding box of a 00011 // collection of lines. 00012 // 00013 // \author Mike Petersen, June 2003 00014 //----------------------------------------------------------------------------- 00015 00016 #include <vbl/vbl_ref_count.h> 00017 #include <vbl/vbl_smart_ptr.h> 00018 #include <vgl/vgl_box_2d.h> 00019 #include <vul/vul_timestamp.h> 00020 00021 00022 class vifa_bbox : public vul_timestamp, 00023 public vbl_ref_count, 00024 public vgl_box_2d<double> 00025 { 00026 public: 00027 // Default constructor 00028 inline vifa_bbox(void) {} 00029 // copy constructor - compiler-provided one sets ref_count to nonzero which is wrong -PVr 00030 inline vifa_bbox(vifa_bbox const& b) 00031 : vul_timestamp(), vbl_ref_count(), vgl_box_2d<double>(b) {} 00032 }; 00033 00034 typedef vbl_smart_ptr<vifa_bbox> vifa_bbox_sptr; 00035 00036 #endif // _VIFA_BBOX_H_