Changeset 15 in flair-src for trunk/lib/FlairCore/src/Map.cpp
- Timestamp:
- 04/08/16 15:40:57 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/FlairCore/src/Map.cpp
r2 r15 27 27 using std::ostringstream; 28 28 29 namespace flair 30 { 31 namespace gui 32 { 29 namespace flair { 30 namespace gui { 33 31 34 32 using namespace core; 35 33 36 Map::Map(const LayoutPosition* position,string name):SendData(position,name,"Map",1000) { 37 size_t i=0; 38 while(1) { 39 double latitude,longitude; 40 double altitude=0; 41 ostringstream lat_prop,long_prop,alt_prop; 42 lat_prop << "lat" << i; 43 long_prop << "long" << i; 44 alt_prop << "alt" << i; 45 if(GetPersistentXmlProp(lat_prop.str(),latitude) && GetPersistentXmlProp(long_prop.str(),longitude)) { 46 SetVolatileXmlProp(lat_prop.str(),latitude); 47 SetVolatileXmlProp(long_prop.str(),longitude); 48 if(GetPersistentXmlProp(alt_prop.str(),altitude)) SetVolatileXmlProp(alt_prop.str(),altitude); 49 GeoCoordinate *checkpoint=new GeoCoordinate(this,"checkpoint",latitude,longitude,altitude); 50 checkpoints.push_back(checkpoint); 51 } else { 52 break; 53 } 54 i++; 34 Map::Map(const LayoutPosition *position, string name) 35 : SendData(position, name, "Map", 1000) { 36 size_t i = 0; 37 while (1) { 38 double latitude, longitude; 39 double altitude = 0; 40 ostringstream lat_prop, long_prop, alt_prop; 41 lat_prop << "lat" << i; 42 long_prop << "long" << i; 43 alt_prop << "alt" << i; 44 if (GetPersistentXmlProp(lat_prop.str(), latitude) && 45 GetPersistentXmlProp(long_prop.str(), longitude)) { 46 SetVolatileXmlProp(lat_prop.str(), latitude); 47 SetVolatileXmlProp(long_prop.str(), longitude); 48 if (GetPersistentXmlProp(alt_prop.str(), altitude)) 49 SetVolatileXmlProp(alt_prop.str(), altitude); 50 GeoCoordinate *checkpoint = 51 new GeoCoordinate(this, "checkpoint", latitude, longitude, altitude); 52 checkpoints.push_back(checkpoint); 53 } else { 54 break; 55 55 } 56 for(size_t i=0;i<checkpoints.size();i++) { 57 double latitude,longitude,altitude; 58 checkpoints.at(i)->GetCoordinates(&latitude,&longitude,&altitude); 59 //printf("%i %f %f\n",i,latitude,longitude); 60 } 56 i++; 57 } 58 for (size_t i = 0; i < checkpoints.size(); i++) { 59 double latitude, longitude, altitude; 60 checkpoints.at(i)->GetCoordinates(&latitude, &longitude, &altitude); 61 // printf("%i %f %f\n",i,latitude,longitude); 62 } 61 63 62 63 /*64 //update value from xml file65 XmlEvent(XmlFileNode());66 if(checkpoints_node.size()!=0) SendXml();//pour les checkpoints64 SendXml(); 65 /* 66 //update value from xml file 67 XmlEvent(XmlFileNode()); 68 if(checkpoints_node.size()!=0) SendXml();//pour les checkpoints 67 69 68 //on enleve les checkpoints du xml69 for(size_t i=0;i<checkpoints_node.size();i++)70 {71 xmlUnlinkNode(checkpoints_node.at(i));72 xmlFreeNode(checkpoints_node.at(i));73 }*/70 //on enleve les checkpoints du xml 71 for(size_t i=0;i<checkpoints_node.size();i++) 72 { 73 xmlUnlinkNode(checkpoints_node.at(i)); 74 xmlFreeNode(checkpoints_node.at(i)); 75 }*/ 74 76 } 75 77 76 Map::~Map() { 77 78 } 78 Map::~Map() {} 79 79 80 80 void Map::ExtraXmlEvent(void) { 81 81 82 //attention pas rt safe (creation checkpoint) 83 size_t i=0; 84 while(1) { 85 //printf("test %i\n",i); 86 double latitude,longitude; 87 double altitude=0; 88 ostringstream lat_prop,long_prop,alt_prop; 89 lat_prop << "lat" << i; 90 long_prop << "long" << i; 91 alt_prop << "alt" << i; 92 if(GetPersistentXmlProp(lat_prop.str(),latitude) && GetPersistentXmlProp(long_prop.str(),longitude)) { 93 GetPersistentXmlProp(alt_prop.str(),altitude); 94 if(i>=checkpoints.size()) { 95 GeoCoordinate *checkpoint=new GeoCoordinate(this,"checkpoint",latitude,longitude,altitude); 96 checkpoints.push_back(checkpoint); 97 //printf("add %i\n",i); 98 } else { 99 checkpoints.at(i)->SetCoordinates(latitude,longitude,altitude); 100 } 101 } else { 102 if(i==checkpoints.size()) break; 103 } 104 i++; 82 // attention pas rt safe (creation checkpoint) 83 size_t i = 0; 84 while (1) { 85 // printf("test %i\n",i); 86 double latitude, longitude; 87 double altitude = 0; 88 ostringstream lat_prop, long_prop, alt_prop; 89 lat_prop << "lat" << i; 90 long_prop << "long" << i; 91 alt_prop << "alt" << i; 92 if (GetPersistentXmlProp(lat_prop.str(), latitude) && 93 GetPersistentXmlProp(long_prop.str(), longitude)) { 94 GetPersistentXmlProp(alt_prop.str(), altitude); 95 if (i >= checkpoints.size()) { 96 GeoCoordinate *checkpoint = new GeoCoordinate( 97 this, "checkpoint", latitude, longitude, altitude); 98 checkpoints.push_back(checkpoint); 99 // printf("add %i\n",i); 100 } else { 101 checkpoints.at(i)->SetCoordinates(latitude, longitude, altitude); 102 } 103 } else { 104 if (i == checkpoints.size()) 105 break; 105 106 } 107 i++; 108 } 106 109 107 for(size_t i=0;i<checkpoints.size();i++) {108 double latitude,longitude,altitude;109 checkpoints.at(i)->GetCoordinates(&latitude,&longitude,&altitude);110 //printf("%i %f %f\n",i,latitude,longitude);111 110 for (size_t i = 0; i < checkpoints.size(); i++) { 111 double latitude, longitude, altitude; 112 checkpoints.at(i)->GetCoordinates(&latitude, &longitude, &altitude); 113 // printf("%i %f %f\n",i,latitude,longitude); 114 } 112 115 } 113 116 114 void Map::AddPoint(const GeoCoordinate * point,string name) {115 SetVolatileXmlProp("point",name);116 117 void Map::AddPoint(const GeoCoordinate *point, string name) { 118 SetVolatileXmlProp("point", name); 119 SendXml(); 117 120 118 119 SetSendSize(to_draw.size()*3*sizeof(double));//lat,long,alt121 to_draw.push_back(point); 122 SetSendSize(to_draw.size() * 3 * sizeof(double)); // lat,long,alt 120 123 } 121 124 122 void Map::CopyDatas(char* buf) const { 123 for(size_t i=0;i<to_draw.size();i++) { 124 double latitude,longitude,altitude; 125 to_draw.at(i)->GetCoordinates(&latitude,&longitude,&altitude); 126 memcpy(buf+i*3*sizeof(double),&latitude,sizeof(double)); 127 memcpy(buf+sizeof(double)+i*3*sizeof(double),&longitude,sizeof(double)); 128 memcpy(buf+2*sizeof(double)+i*3*sizeof(double),&altitude,sizeof(double)); 129 } 125 void Map::CopyDatas(char *buf) const { 126 for (size_t i = 0; i < to_draw.size(); i++) { 127 double latitude, longitude, altitude; 128 to_draw.at(i)->GetCoordinates(&latitude, &longitude, &altitude); 129 memcpy(buf + i * 3 * sizeof(double), &latitude, sizeof(double)); 130 memcpy(buf + sizeof(double) + i * 3 * sizeof(double), &longitude, 131 sizeof(double)); 132 memcpy(buf + 2 * sizeof(double) + i * 3 * sizeof(double), &altitude, 133 sizeof(double)); 134 } 130 135 } 131 136
Note:
See TracChangeset
for help on using the changeset viewer.