00001 # ifndef Region_h
00002 # define Region_h Region_h
00003
00004
00005
00006 #include "Element.h"
00007
00008
00009 namespace Conjecture {
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 class Region : public Element {
00027 public:
00028
00029 Region(Element* parent, const Coord& topleft, const Coord& bottomright);
00030
00031
00032 virtual int type() const { return Type; }
00033
00039 virtual Region* asRegion() { return this; }
00040 virtual const Region* asRegion() const { return this; }
00041
00042 virtual void printSummary(std::ostream& os = std::cerr, const std::string& indent = "", int index = -1) const;
00043
00053 static void test(int argc = 0, const char* argv[] = NULL);
00054
00055 protected:
00056
00057
00058
00059
00060 private:
00061
00062
00063
00064
00065
00066 static const ElementType Type = ELEMENT_REGION;
00067 };
00068 };
00069
00070 # endif // Region_h
00071