00001
00002
00003 #ifndef ContainerTessellation_h
00004 #define ContainerTessellation_h
00005
00006 #include "Tessellation.h"
00007 #include "clivector.h"
00008
00009 #include "Serializable.h"
00010
00011
00012 using namespace std;
00013
00014 namespace BIE {
00015
00016
00027 class ContainerTessellation : public Tessellation {
00028
00029 public:
00030
00039 ContainerTessellation(clivectortess* tessellations);
00040
00042 virtual ~ContainerTessellation() {};
00043
00044 vector<int> GetRootTiles() { return _roottiles; }
00045 vector<Node*> GetRootNodes() { return _rootnodes; }
00046
00047 private:
00049 vector<Node*> _rootnodes;
00050
00052 vector<int> _roottiles;
00053
00054
00055 protected:
00056 ContainerTessellation() {}
00057 private:
00058 friend class boost::serialization::access;
00059 template<class Archive>
00060 void serialize(Archive & ar, const unsigned int version) {
00061 this->pre_serialize(ar, version);
00062 try {
00063 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Tessellation);
00064 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00065 }
00066 try {
00067 ar & BOOST_SERIALIZATION_NVP(_rootnodes);
00068 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00069 }
00070 try {
00071 ar & BOOST_SERIALIZATION_NVP(_roottiles);
00072 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00073 }
00074 this->post_serialize(ar, version);
00075 }
00076
00077 };
00078
00079 }
00080 BIE_CLASS_TYPE_INFO(BIE::ContainerTessellation)
00081 BIE_CLASS_EXPORT_KEY(BIE::ContainerTessellation)
00082 #endif