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