RegionCreator.h
Go to the documentation of this file.00001
00002 #ifndef REGION_REGIONCREATOR_H_
00003 #define REGION_REGIONCREATOR_H_
00004 #include <display/region/RegionEnums.h>
00005 #include <display/Utilities/VOID.h>
00006 #include <set>
00007 #include <map>
00008 #include <list>
00009 #include <vector>
00010
00011 namespace casa {
00012 class WorldCanvas;
00013 namespace viewer {
00014 class RegionCreator {
00015 public:
00016 typedef std::list <RegionCreator*> creator_list_type;
00017
00018 virtual void revokeRegion (Region *) = 0;
00019
00020 virtual const std::set <region::RegionTypes> ®ionsCreated () const = 0;
00021 virtual bool create( region::RegionTypes , WorldCanvas *, const std::vector<std::pair <double, double> > &,
00022 const std::string &, viewer::region::TextPosition , const std::vector<int> &,
00023 const std::string &, int , int , const std::string &,
00024 const std::string &, viewer::region::LineStyle , unsigned int ,
00025 bool , VOID * )= 0;
00026
00027
00028 RegionCreator ();
00029 virtual ~RegionCreator ();
00030
00031 static const creator_list_type &findCreator (region::RegionTypes type);
00032
00033 private:
00034 typedef std::map <region::RegionTypes, creator_list_type*> creator_map_type;
00035 static creator_map_type creator_map;
00036 static creator_list_type unsorted_creators;
00037 };
00038
00039 }
00040 }
00041
00042 #endif