00001
00002
00003 #ifndef SquareTile_h
00004 #define SquareTile_h
00005
00006 #include "Tile.h"
00007
00008 #include "Serializable.h"
00009
00010
00011 namespace BIE {
00012
00014 class SquareTile : public Tile {
00015
00016 public:
00017
00020 SquareTile();
00021
00022
00025 SquareTile(double, double, double, double);
00026
00028 virtual SquareTile* New();
00029
00031 void setup(double, double, double, double);
00033 void corners(double&, double&, double&, double&);
00035 double X(double, double);
00037 double Y(double, double);
00039 double measure(double, double);
00041 bool InTile(double, double);
00043 void print(ostream & outputstream);
00045 void printforplot(ostream & outputstream);
00047 bool overlapsWith(Tile *);
00049 string toString();
00050
00051 protected:
00053 double points[4];
00054
00056 double dx;
00057
00059 double dy;
00060
00061
00062 private:
00063 friend class boost::serialization::access;
00064 template<class Archive>
00065 void serialize(Archive & ar, const unsigned int version) {
00066 this->pre_serialize(ar, version);
00067 try {
00068 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Tile);
00069 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00070 }
00071 try {
00072 ar & BOOST_SERIALIZATION_NVP(points);
00073 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00074 }
00075 try {
00076 ar & BOOST_SERIALIZATION_NVP(dx);
00077 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00078 }
00079 try {
00080 ar & BOOST_SERIALIZATION_NVP(dy);
00081 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00082 }
00083 this->post_serialize(ar, version);
00084 }
00085
00086 };
00087
00088 }
00089 BIE_CLASS_TYPE_INFO(BIE::SquareTile)
00090 BIE_CLASS_EXPORT_KEY(BIE::SquareTile)
00091 #endif