BIE |
/home/weinberg/src/BIE/include/CursorTessellation.h00001 // This is really -*- C++ -*- 00002 00003 #ifndef CursorTessellation_h 00004 #define CursorTessellation_h 00005 00006 #include <string> 00007 #include <algorithm> 00008 #include <vector> 00009 00010 #include "hash_map.h" 00011 #include "Node.h" 00012 #include "Tessellation.h" 00013 00014 #include "Serializable.h" 00015 00016 00017 namespace BIE { 00018 00019 class RecordInputStream; 00020 00021 //+ CLICLASS CursorTessellation SUPER Tessellation 00036 class CursorTessellation : public Tessellation 00037 { 00038 00039 public: 00040 //+ CLICONSTR RecordInputStream* int 00044 CursorTessellation(RecordInputStream* ris, int ssize); 00045 00046 //+ CLICONSTR RecordInputStream* int double double double double 00052 CursorTessellation(RecordInputStream * ris, int ssize, 00053 double minx, double miny, double maxx, double maxy); 00054 00056 ~CursorTessellation() {}; 00057 00059 vector<int> GetRootTiles(); 00060 00062 vector<Node*> GetRootNodes(); 00063 00064 00067 virtual void FindAll(double x, double y, vector<int> &found); 00068 00069 00070 private: 00072 hashers<twodcoords, Node *, hashCoords, compxy >::MapType 00073 nodemap; 00074 00076 vector<MonoNode*> root; 00077 00079 int numRoots; 00080 00082 Tile* tilefactory; 00083 00085 int Nsize; 00086 00088 vector<twodcoords> sampledata; 00089 00091 void tessellate(double minx, double miny, double maxx, double maxy); 00092 00094 void initialize(RecordInputStream * ris, 00095 double minx, double miny, double maxx, double maxy); 00096 00098 void findall(double, double, vector<int>&, Node*); 00099 00100 // AUTO GENERATED BY ../persistence/autopersist.py 00101 protected: 00102 CursorTessellation() {} 00103 private: 00104 friend class boost::serialization::access; 00105 template<class Archive> 00106 void serialize(Archive & ar, const unsigned int version) { 00107 this->pre_serialize(ar, version); 00108 try { 00109 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(Tessellation); 00110 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00111 } 00112 try { 00113 ar & BOOST_SERIALIZATION_NVP(nodemap); 00114 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00115 } 00116 try { 00117 ar & BOOST_SERIALIZATION_NVP(root); 00118 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00119 } 00120 try { 00121 ar & BOOST_SERIALIZATION_NVP(numRoots); 00122 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00123 } 00124 try { 00125 ar & BOOST_SERIALIZATION_NVP(tilefactory); 00126 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00127 } 00128 try { 00129 ar & BOOST_SERIALIZATION_NVP(Nsize); 00130 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION; 00131 } 00132 this->post_serialize(ar, version); 00133 } 00134 00135 }; 00136 00137 } // namespace BIE 00138 00139 BIE_CLASS_TYPE_INFO(BIE::CursorTessellation) 00140 BIE_CLASS_EXPORT_KEY(BIE::CursorTessellation) 00141 #endif Send suggestions, questions, and feedback to WEINBERG at ASTRO dot UMASS dot EDU. Documentation generated at Fri Mar 26 00:35:10 2010 by
|