| 1 | #include <vector>
|
|---|
| 2 | #include <iostream>
|
|---|
| 3 | #include <boost/polygon/polygon.hpp>
|
|---|
| 4 | #include <boost/polygon/segment_concept.hpp>
|
|---|
| 5 | #include <boost/foreach.hpp>
|
|---|
| 6 |
|
|---|
| 7 | using namespace std;
|
|---|
| 8 | using namespace boost;
|
|---|
| 9 | using namespace boost::polygon;
|
|---|
| 10 | using namespace boost::polygon::operators;
|
|---|
| 11 |
|
|---|
| 12 |
|
|---|
| 13 | typedef point_data<long double> BPoint;
|
|---|
| 14 | typedef polygon_data<long double> BPolygon;
|
|---|
| 15 | typedef polygon_with_holes_data<long double> BPolygonWithHoles;
|
|---|
| 16 | typedef polygon_set_data<long double> BPolygonSet;
|
|---|
| 17 |
|
|---|
| 18 |
|
|---|
| 19 |
|
|---|
| 20 |
|
|---|
| 21 | int main(int argc, char *argv[])
|
|---|
| 22 | {
|
|---|
| 23 | cout << "Start main" << endl;
|
|---|
| 24 | BPolygonSet hole_set;
|
|---|
| 25 | BPolygonSet rect_set;
|
|---|
| 26 | vector<BPoint> hole_points;
|
|---|
| 27 | vector<BPoint> rec_points;
|
|---|
| 28 |
|
|---|
| 29 | long double rect_data[] = {
|
|---|
| 30 | 234192743,152532547,
|
|---|
| 31 | 234178199,152561636,
|
|---|
| 32 | 233483178,154160183,
|
|---|
| 33 | 233603877,155705125,
|
|---|
| 34 | 233260158,157423720,
|
|---|
| 35 | 231628565,159028565,
|
|---|
| 36 | 230128565,160553565,
|
|---|
| 37 | 228544284,162111875,
|
|---|
| 38 | 228397404,162185315,
|
|---|
| 39 | 218301395,165831785,
|
|---|
| 40 | 216409102,167750000,
|
|---|
| 41 | 216150000,167750000,
|
|---|
| 42 | 213820027,167750000,
|
|---|
| 43 | 207360263,169595647,
|
|---|
| 44 | 205528561,171403561,
|
|---|
| 45 | 203628561,173328561,
|
|---|
| 46 | 201799044,175134318,
|
|---|
| 47 | 195425000,199539218,
|
|---|
| 48 | 195425000,199941616,
|
|---|
| 49 | 194787046,200539697,
|
|---|
| 50 | 194531139,200625000,
|
|---|
| 51 | 194332166,200625000,
|
|---|
| 52 | 192115266,200466650,
|
|---|
| 53 | 191903820,200360927,
|
|---|
| 54 | 189964073,198421180,
|
|---|
| 55 | 189843548,198180131,
|
|---|
| 56 | 189975000,195761423,
|
|---|
| 57 | 189975000,193488431,
|
|---|
| 58 | 189838748,190954145,
|
|---|
| 59 | 190019795,190773099,
|
|---|
| 60 | 191209455,189560992,
|
|---|
| 61 | 191324464,187099786,
|
|---|
| 62 | 191194559,184267848,
|
|---|
| 63 | 191320134,184016698,
|
|---|
| 64 | 193379529,182163243,
|
|---|
| 65 | 195271439,180246439,
|
|---|
| 66 | 197196439,178346439,
|
|---|
| 67 | 199093680,176424234,
|
|---|
| 68 | 208601713,166740126,
|
|---|
| 69 | 208844329,166618819,
|
|---|
| 70 | 211258693,166744567,
|
|---|
| 71 | 214588435,165299400,
|
|---|
| 72 | 217843400,165299400,
|
|---|
| 73 | 218270800,164871900,
|
|---|
| 74 | 218271300,164871900,
|
|---|
| 75 | 221793300,161349900,
|
|---|
| 76 | 221793300,161349400,
|
|---|
| 77 | 221982300,161160500,
|
|---|
| 78 | 221982300,161116835,
|
|---|
| 79 | 223864356,161225000,
|
|---|
| 80 | 225797136,161225000,
|
|---|
| 81 | 232190313,153870442,
|
|---|
| 82 | 232251883,153131604,
|
|---|
| 83 | 232493443,150474451,
|
|---|
| 84 | 232646447,150321447,
|
|---|
| 85 | 232871447,150096447,
|
|---|
| 86 | 233042893,149925000,
|
|---|
| 87 | 234343034,149925000,
|
|---|
| 88 | 234571180,150039073,
|
|---|
| 89 | 234753553,150221447,
|
|---|
| 90 | 234925000,150392893,
|
|---|
| 91 | 234925000,151203637
|
|---|
| 92 | };
|
|---|
| 93 |
|
|---|
| 94 |
|
|---|
| 95 | for (size_t i = 0; i < sizeof(rect_data) / sizeof(*rect_data); i += 2) {
|
|---|
| 96 | rec_points.push_back(BPoint(rect_data[i], rect_data[i + 1]));
|
|---|
| 97 | }
|
|---|
| 98 |
|
|---|
| 99 | rect_set |= BPolygon(rec_points.begin(), rec_points.end());
|
|---|
| 100 |
|
|---|
| 101 |
|
|---|
| 102 |
|
|---|
| 103 |
|
|---|
| 104 |
|
|---|
| 105 |
|
|---|
| 106 |
|
|---|
| 107 | long double hole_1_data[] = {
|
|---|
| 108 | 191209300,199179000,
|
|---|
| 109 | 191176200,199301900,
|
|---|
| 110 | 191106800,199408500,
|
|---|
| 111 | 191091900,199430200,
|
|---|
| 112 | 191081900,199460400,
|
|---|
| 113 | 191081800,199492200,
|
|---|
| 114 | 191091500,199522400,
|
|---|
| 115 | 191110100,199548200,
|
|---|
| 116 | 191165349,199622456,
|
|---|
| 117 | 190464784,198921891,
|
|---|
| 118 | 190502800,198863500,
|
|---|
| 119 | 190601800,198783500,
|
|---|
| 120 | 190720700,198738000,
|
|---|
| 121 | 190847800,198731500,
|
|---|
| 122 | 190970700,198764600,
|
|---|
| 123 | 191077300,198834000,
|
|---|
| 124 | 191157300,198933000,
|
|---|
| 125 | 191202800,199051900,
|
|---|
| 126 | 191209300,199179000
|
|---|
| 127 | };
|
|---|
| 128 |
|
|---|
| 129 | hole_points.clear();
|
|---|
| 130 | for (size_t i = 0; i < sizeof(hole_1_data) / sizeof(*hole_1_data); i += 2) {
|
|---|
| 131 | hole_points.push_back(BPoint(hole_1_data[i], hole_1_data[i + 1]));
|
|---|
| 132 | }
|
|---|
| 133 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 134 |
|
|---|
| 135 | long double hole_2_data[] = {
|
|---|
| 136 | 192517800,197625700,
|
|---|
| 137 | 192505976,197723078,
|
|---|
| 138 | 192471192,197814796,
|
|---|
| 139 | 192415469,197895525,
|
|---|
| 140 | 192342046,197960572,
|
|---|
| 141 | 192255189,198006158,
|
|---|
| 142 | 192159946,198029633,
|
|---|
| 143 | 192061854,198029633,
|
|---|
| 144 | 191966611,198006158,
|
|---|
| 145 | 191879754,197960572,
|
|---|
| 146 | 191806331,197895525,
|
|---|
| 147 | 191750608,197814796,
|
|---|
| 148 | 191715824,197723078,
|
|---|
| 149 | 191704000,197625700,
|
|---|
| 150 | 191715824,197528322,
|
|---|
| 151 | 191750608,197436604,
|
|---|
| 152 | 191806331,197355875,
|
|---|
| 153 | 191879754,197290828,
|
|---|
| 154 | 191966611,197245242,
|
|---|
| 155 | 192061854,197221767,
|
|---|
| 156 | 192159946,197221767,
|
|---|
| 157 | 192255189,197245242,
|
|---|
| 158 | 192342046,197290828,
|
|---|
| 159 | 192415469,197355875,
|
|---|
| 160 | 192471192,197436604,
|
|---|
| 161 | 192505976,197528322,
|
|---|
| 162 | 192517800,197625700
|
|---|
| 163 | };
|
|---|
| 164 |
|
|---|
| 165 | hole_points.clear();
|
|---|
| 166 | for (size_t i = 0; i < sizeof(hole_2_data) / sizeof(*hole_2_data); i += 2) {
|
|---|
| 167 | hole_points.push_back(BPoint(hole_2_data[i], hole_2_data[i + 1]));
|
|---|
| 168 | }
|
|---|
| 169 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 170 |
|
|---|
| 171 | long double hole_3_data[] = {
|
|---|
| 172 | 193417500,200324300,
|
|---|
| 173 | 193415200,200451500,
|
|---|
| 174 | 193378752,200556899,
|
|---|
| 175 | 192632004,200503559,
|
|---|
| 176 | 192611700,200436900,
|
|---|
| 177 | 192614000,200309700,
|
|---|
| 178 | 192655600,200189400,
|
|---|
| 179 | 192732200,200087800,
|
|---|
| 180 | 192836500,200014800,
|
|---|
| 181 | 192958300,199977700,
|
|---|
| 182 | 193085500,199980000,
|
|---|
| 183 | 193205800,200021600,
|
|---|
| 184 | 193307400,200098200,
|
|---|
| 185 | 193380400,200202500,
|
|---|
| 186 | 193417500,200324300
|
|---|
| 187 | };
|
|---|
| 188 |
|
|---|
| 189 | hole_points.clear();
|
|---|
| 190 | for (size_t i = 0; i < sizeof(hole_3_data) / sizeof(*hole_3_data); i += 2) {
|
|---|
| 191 | hole_points.push_back(BPoint(hole_3_data[i], hole_3_data[i + 1]));
|
|---|
| 192 | }
|
|---|
| 193 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 194 |
|
|---|
| 195 | long double hole_4_data[] = {
|
|---|
| 196 | 193442300,198690000,
|
|---|
| 197 | 193424000,198703800,
|
|---|
| 198 | 193405800,198729900,
|
|---|
| 199 | 193399000,198743000,
|
|---|
| 200 | 193322400,198844600,
|
|---|
| 201 | 193218100,198917600,
|
|---|
| 202 | 193096300,198954700,
|
|---|
| 203 | 192969100,198952400,
|
|---|
| 204 | 192848800,198910800,
|
|---|
| 205 | 192747200,198834200,
|
|---|
| 206 | 192674200,198729900,
|
|---|
| 207 | 192637100,198608100,
|
|---|
| 208 | 192639400,198480900,
|
|---|
| 209 | 192681000,198360600,
|
|---|
| 210 | 192757600,198259000,
|
|---|
| 211 | 192861900,198186000,
|
|---|
| 212 | 192983700,198148900,
|
|---|
| 213 | 193110900,198151200,
|
|---|
| 214 | 193231200,198192800,
|
|---|
| 215 | 193332800,198269400,
|
|---|
| 216 | 193405800,198373700,
|
|---|
| 217 | 193407500,198377100,
|
|---|
| 218 | 193426700,198402500,
|
|---|
| 219 | 193442300,198413400,
|
|---|
| 220 | 193442300,198690000
|
|---|
| 221 | };
|
|---|
| 222 |
|
|---|
| 223 | hole_points.clear();
|
|---|
| 224 | for (size_t i = 0; i < sizeof(hole_4_data) / sizeof(*hole_4_data); i += 2) {
|
|---|
| 225 | hole_points.push_back(BPoint(hole_4_data[i], hole_4_data[i + 1]));
|
|---|
| 226 | }
|
|---|
| 227 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 228 |
|
|---|
| 229 | long double hole_5_data[] = {
|
|---|
| 230 | 193893400,195666300,
|
|---|
| 231 | 193862600,195789800,
|
|---|
| 232 | 193795100,195897800,
|
|---|
| 233 | 193697600,195979600,
|
|---|
| 234 | 193579600,196027300,
|
|---|
| 235 | 193452600,196036100,
|
|---|
| 236 | 193329100,196005300,
|
|---|
| 237 | 193221100,195937900,
|
|---|
| 238 | 193139300,195840400,
|
|---|
| 239 | 193091600,195722300,
|
|---|
| 240 | 193082700,195595300,
|
|---|
| 241 | 193113500,195471800,
|
|---|
| 242 | 193181000,195363800,
|
|---|
| 243 | 193191300,195349700,
|
|---|
| 244 | 193203200,195320200,
|
|---|
| 245 | 193205400,195288500,
|
|---|
| 246 | 193197800,195257700,
|
|---|
| 247 | 193181000,195230800,
|
|---|
| 248 | 193129100,195155400,
|
|---|
| 249 | 193087500,195035100,
|
|---|
| 250 | 193085000,194907800,
|
|---|
| 251 | 193122100,194786000,
|
|---|
| 252 | 193194900,194681600,
|
|---|
| 253 | 193203200,194670200,
|
|---|
| 254 | 193208400,194655100,
|
|---|
| 255 | 193208700,194639200,
|
|---|
| 256 | 193204100,194624000,
|
|---|
| 257 | 193194900,194611000,
|
|---|
| 258 | 193129100,194520400,
|
|---|
| 259 | 193087500,194400100,
|
|---|
| 260 | 193085100,194272800,
|
|---|
| 261 | 193122100,194151000,
|
|---|
| 262 | 193194900,194046600,
|
|---|
| 263 | 193203200,194035200,
|
|---|
| 264 | 193208400,194020100,
|
|---|
| 265 | 193208700,194004200,
|
|---|
| 266 | 193204100,193989000,
|
|---|
| 267 | 193194900,193976000,
|
|---|
| 268 | 193129100,193885400,
|
|---|
| 269 | 193087500,193765100,
|
|---|
| 270 | 193085100,193637800,
|
|---|
| 271 | 193122100,193516000,
|
|---|
| 272 | 193194900,193411600,
|
|---|
| 273 | 193296500,193334800,
|
|---|
| 274 | 193416800,193293200,
|
|---|
| 275 | 193544100,193290800,
|
|---|
| 276 | 193665900,193327800,
|
|---|
| 277 | 193770300,193400700,
|
|---|
| 278 | 193847000,193502200,
|
|---|
| 279 | 193888600,193622500,
|
|---|
| 280 | 193891100,193749800,
|
|---|
| 281 | 193854000,193871600,
|
|---|
| 282 | 193781200,193976000,
|
|---|
| 283 | 193772900,193987400,
|
|---|
| 284 | 193767700,194002500,
|
|---|
| 285 | 193767400,194018400,
|
|---|
| 286 | 193772100,194033600,
|
|---|
| 287 | 193781200,194046600,
|
|---|
| 288 | 193847000,194137200,
|
|---|
| 289 | 193888600,194257500,
|
|---|
| 290 | 193891100,194384800,
|
|---|
| 291 | 193854000,194506600,
|
|---|
| 292 | 193781200,194611000,
|
|---|
| 293 | 193772900,194622400,
|
|---|
| 294 | 193767700,194637500,
|
|---|
| 295 | 193767400,194653400,
|
|---|
| 296 | 193772100,194668600,
|
|---|
| 297 | 193781200,194681600,
|
|---|
| 298 | 193836800,194754200,
|
|---|
| 299 | 193884500,194872300,
|
|---|
| 300 | 193893400,194999300,
|
|---|
| 301 | 193862600,195122800,
|
|---|
| 302 | 193795100,195230800,
|
|---|
| 303 | 193784900,195244900,
|
|---|
| 304 | 193772900,195274400,
|
|---|
| 305 | 193770700,195306000,
|
|---|
| 306 | 193778300,195336900,
|
|---|
| 307 | 193795100,195363800,
|
|---|
| 308 | 193836800,195421200,
|
|---|
| 309 | 193884500,195539300,
|
|---|
| 310 | 193893400,195666300
|
|---|
| 311 | };
|
|---|
| 312 |
|
|---|
| 313 | hole_points.clear();
|
|---|
| 314 | for (size_t i = 0; i < sizeof(hole_5_data) / sizeof(*hole_5_data); i += 2) {
|
|---|
| 315 | hole_points.push_back(BPoint(hole_5_data[i], hole_5_data[i + 1]));
|
|---|
| 316 | }
|
|---|
| 317 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 318 |
|
|---|
| 319 | long double hole_6_data[] = {
|
|---|
| 320 | 194335900,200430000,
|
|---|
| 321 | 194316400,200555900,
|
|---|
| 322 | 194283250,200621506,
|
|---|
| 323 | 193547832,200568976,
|
|---|
| 324 | 193542400,200558400,
|
|---|
| 325 | 193522100,200432800,
|
|---|
| 326 | 193541600,200306900,
|
|---|
| 327 | 193599000,200193300,
|
|---|
| 328 | 193688700,200103000,
|
|---|
| 329 | 193802000,200044800,
|
|---|
| 330 | 193927600,200024500,
|
|---|
| 331 | 194053500,200044000,
|
|---|
| 332 | 194167100,200101400,
|
|---|
| 333 | 194257400,200191100,
|
|---|
| 334 | 194315600,200304400,
|
|---|
| 335 | 194335900,200430000
|
|---|
| 336 | };
|
|---|
| 337 |
|
|---|
| 338 | hole_points.clear();
|
|---|
| 339 | for (size_t i = 0; i < sizeof(hole_6_data) / sizeof(*hole_6_data); i += 2) {
|
|---|
| 340 | hole_points.push_back(BPoint(hole_6_data[i], hole_6_data[i + 1]));
|
|---|
| 341 | }
|
|---|
| 342 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 343 |
|
|---|
| 344 | long double hole_7_data[] = {
|
|---|
| 345 | 194357300,198495500,
|
|---|
| 346 | 194355000,198622700,
|
|---|
| 347 | 194313400,198743000,
|
|---|
| 348 | 194236800,198844600,
|
|---|
| 349 | 194132500,198917600,
|
|---|
| 350 | 194129100,198919300,
|
|---|
| 351 | 194103700,198938500,
|
|---|
| 352 | 194085500,198964500,
|
|---|
| 353 | 194076200,198995000,
|
|---|
| 354 | 194076800,199026800,
|
|---|
| 355 | 194087200,199056800,
|
|---|
| 356 | 194106400,199082200,
|
|---|
| 357 | 194132500,199100400,
|
|---|
| 358 | 194153100,199111300,
|
|---|
| 359 | 194253200,199190000,
|
|---|
| 360 | 194324000,199295800,
|
|---|
| 361 | 194325700,199299300,
|
|---|
| 362 | 194344300,199325000,
|
|---|
| 363 | 194348100,199327800,
|
|---|
| 364 | 194348100,199616700,
|
|---|
| 365 | 194335300,199626000,
|
|---|
| 366 | 194316600,199651600,
|
|---|
| 367 | 194313500,199657500,
|
|---|
| 368 | 194236800,199759100,
|
|---|
| 369 | 194132500,199832000,
|
|---|
| 370 | 194010700,199869100,
|
|---|
| 371 | 193883500,199866800,
|
|---|
| 372 | 193763100,199825300,
|
|---|
| 373 | 193661500,199748600,
|
|---|
| 374 | 193588600,199644300,
|
|---|
| 375 | 193551500,199522500,
|
|---|
| 376 | 193553800,199395300,
|
|---|
| 377 | 193595300,199274900,
|
|---|
| 378 | 193672000,199173300,
|
|---|
| 379 | 193776300,199100400,
|
|---|
| 380 | 193779700,199098700,
|
|---|
| 381 | 193805100,199079500,
|
|---|
| 382 | 193823300,199053400,
|
|---|
| 383 | 193832600,199023000,
|
|---|
| 384 | 193832000,198991200,
|
|---|
| 385 | 193821600,198961200,
|
|---|
| 386 | 193802400,198935800,
|
|---|
| 387 | 193776300,198917600,
|
|---|
| 388 | 193763200,198910800,
|
|---|
| 389 | 193661600,198834200,
|
|---|
| 390 | 193588600,198729900,
|
|---|
| 391 | 193586900,198726500,
|
|---|
| 392 | 193569300,198703200,
|
|---|
| 393 | 193569300,198400600,
|
|---|
| 394 | 193570400,198399800,
|
|---|
| 395 | 193588600,198373700,
|
|---|
| 396 | 193595400,198360600,
|
|---|
| 397 | 193672000,198259000,
|
|---|
| 398 | 193776300,198186000,
|
|---|
| 399 | 193898100,198148900,
|
|---|
| 400 | 194025300,198151200,
|
|---|
| 401 | 194145600,198192800,
|
|---|
| 402 | 194247200,198269400,
|
|---|
| 403 | 194320200,198373700,
|
|---|
| 404 | 194357300,198495500
|
|---|
| 405 | };
|
|---|
| 406 |
|
|---|
| 407 | hole_points.clear();
|
|---|
| 408 | for (size_t i = 0; i < sizeof(hole_7_data) / sizeof(*hole_7_data); i += 2) {
|
|---|
| 409 | hole_points.push_back(BPoint(hole_7_data[i], hole_7_data[i + 1]));
|
|---|
| 410 | }
|
|---|
| 411 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 412 |
|
|---|
| 413 | long double hole_8_data[] = {
|
|---|
| 414 | 195200631,200151961,
|
|---|
| 415 | 194787046,200539697,
|
|---|
| 416 | 194546002,200620045,
|
|---|
| 417 | 194510500,200573400,
|
|---|
| 418 | 194468400,200453200,
|
|---|
| 419 | 194465600,200325900,
|
|---|
| 420 | 194502200,200204000,
|
|---|
| 421 | 194574700,200099400,
|
|---|
| 422 | 194676000,200022200,
|
|---|
| 423 | 194697300,200006700,
|
|---|
| 424 | 195026000,200006700,
|
|---|
| 425 | 195036000,200002500,
|
|---|
| 426 | 195036300,200002900,
|
|---|
| 427 | 195061600,200022200,
|
|---|
| 428 | 195142100,200079200,
|
|---|
| 429 | 195200631,200151961
|
|---|
| 430 | };
|
|---|
| 431 |
|
|---|
| 432 | hole_points.clear();
|
|---|
| 433 | for (size_t i = 0; i < sizeof(hole_8_data) / sizeof(*hole_8_data); i += 2) {
|
|---|
| 434 | hole_points.push_back(BPoint(hole_8_data[i], hole_8_data[i + 1]));
|
|---|
| 435 | }
|
|---|
| 436 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 437 |
|
|---|
| 438 | long double hole_9_data[] = {
|
|---|
| 439 | 195325200,198584300,
|
|---|
| 440 | 195295300,198708000,
|
|---|
| 441 | 195228600,198816500,
|
|---|
| 442 | 195131700,198899000,
|
|---|
| 443 | 195014000,198947600,
|
|---|
| 444 | 194887100,198957400,
|
|---|
| 445 | 194763400,198927500,
|
|---|
| 446 | 194654900,198860800,
|
|---|
| 447 | 194572400,198763900,
|
|---|
| 448 | 194523800,198646200,
|
|---|
| 449 | 194514000,198519300,
|
|---|
| 450 | 194543900,198395600,
|
|---|
| 451 | 194610600,198287100,
|
|---|
| 452 | 194707500,198204600,
|
|---|
| 453 | 194729300,198186600,
|
|---|
| 454 | 194747000,198160200,
|
|---|
| 455 | 194755600,198129600,
|
|---|
| 456 | 194754300,198097800,
|
|---|
| 457 | 194743300,198068000,
|
|---|
| 458 | 194723600,198043100,
|
|---|
| 459 | 194697100,198025500,
|
|---|
| 460 | 194603100,197965200,
|
|---|
| 461 | 194520600,197868300,
|
|---|
| 462 | 194472000,197750600,
|
|---|
| 463 | 194462200,197623700,
|
|---|
| 464 | 194492100,197500000,
|
|---|
| 465 | 194558800,197391500,
|
|---|
| 466 | 194655700,197309000,
|
|---|
| 467 | 194773400,197260400,
|
|---|
| 468 | 194900300,197250600,
|
|---|
| 469 | 195024000,197280500,
|
|---|
| 470 | 195132500,197347200,
|
|---|
| 471 | 195215000,197444100,
|
|---|
| 472 | 195263500,197561800,
|
|---|
| 473 | 195273300,197688700,
|
|---|
| 474 | 195243500,197812400,
|
|---|
| 475 | 195176800,197920900,
|
|---|
| 476 | 195079900,198003400,
|
|---|
| 477 | 195058100,198021400,
|
|---|
| 478 | 195040400,198047800,
|
|---|
| 479 | 195031800,198078400,
|
|---|
| 480 | 195033100,198110200,
|
|---|
| 481 | 195044100,198140000,
|
|---|
| 482 | 195063800,198164900,
|
|---|
| 483 | 195090300,198182500,
|
|---|
| 484 | 195184300,198242800,
|
|---|
| 485 | 195266800,198339700,
|
|---|
| 486 | 195315400,198457400,
|
|---|
| 487 | 195325200,198584300
|
|---|
| 488 | };
|
|---|
| 489 |
|
|---|
| 490 | hole_points.clear();
|
|---|
| 491 | for (size_t i = 0; i < sizeof(hole_9_data) / sizeof(*hole_9_data); i += 2) {
|
|---|
| 492 | hole_points.push_back(BPoint(hole_9_data[i], hole_9_data[i + 1]));
|
|---|
| 493 | }
|
|---|
| 494 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 495 |
|
|---|
| 496 | long double hole_10_data[] = {
|
|---|
| 497 | 195536148,199113653,
|
|---|
| 498 | 195425000,199539218,
|
|---|
| 499 | 195425000,199725469,
|
|---|
| 500 | 195391500,199688400,
|
|---|
| 501 | 195382800,199677000,
|
|---|
| 502 | 195358300,199656700,
|
|---|
| 503 | 195328700,199644900,
|
|---|
| 504 | 195297000,199642900,
|
|---|
| 505 | 195266200,199650800,
|
|---|
| 506 | 195239300,199667800,
|
|---|
| 507 | 195219100,199692300,
|
|---|
| 508 | 195162900,199766300,
|
|---|
| 509 | 195061600,199843400,
|
|---|
| 510 | 195039700,199859300,
|
|---|
| 511 | 195024100,199879700,
|
|---|
| 512 | 194713000,199879700,
|
|---|
| 513 | 194701300,199862700,
|
|---|
| 514 | 194676000,199843400,
|
|---|
| 515 | 194670000,199840100,
|
|---|
| 516 | 194570000,199761300,
|
|---|
| 517 | 194499200,199655400,
|
|---|
| 518 | 194497500,199651900,
|
|---|
| 519 | 194478900,199626200,
|
|---|
| 520 | 194475100,199623400,
|
|---|
| 521 | 194475100,199334500,
|
|---|
| 522 | 194487900,199325200,
|
|---|
| 523 | 194506600,199299600,
|
|---|
| 524 | 194552100,199229500,
|
|---|
| 525 | 194646600,199144100,
|
|---|
| 526 | 194762800,199092100,
|
|---|
| 527 | 194889400,199078600,
|
|---|
| 528 | 195013900,199104800,
|
|---|
| 529 | 195124300,199168300,
|
|---|
| 530 | 195209700,199262700,
|
|---|
| 531 | 195218400,199274200,
|
|---|
| 532 | 195242900,199294500,
|
|---|
| 533 | 195272500,199306300,
|
|---|
| 534 | 195304200,199308300,
|
|---|
| 535 | 195335000,199300400,
|
|---|
| 536 | 195361900,199283400,
|
|---|
| 537 | 195382100,199258900,
|
|---|
| 538 | 195415700,199210700,
|
|---|
| 539 | 195510100,199125300,
|
|---|
| 540 | 195536148,199113653
|
|---|
| 541 | };
|
|---|
| 542 |
|
|---|
| 543 | hole_points.clear();
|
|---|
| 544 | for (size_t i = 0; i < sizeof(hole_10_data) / sizeof(*hole_10_data); i += 2) {
|
|---|
| 545 | hole_points.push_back(BPoint(hole_10_data[i], hole_10_data[i + 1]));
|
|---|
| 546 | }
|
|---|
| 547 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 548 |
|
|---|
| 549 | long double hole_11_data[] = {
|
|---|
| 550 | 195721300,195709900,
|
|---|
| 551 | 195687700,195832700,
|
|---|
| 552 | 195617800,195939200,
|
|---|
| 553 | 195518500,196018800,
|
|---|
| 554 | 195399400,196063800,
|
|---|
| 555 | 195272300,196069800,
|
|---|
| 556 | 195149500,196036200,
|
|---|
| 557 | 195043000,195966300,
|
|---|
| 558 | 194963400,195867000,
|
|---|
| 559 | 194918400,195747900,
|
|---|
| 560 | 194912400,195620700,
|
|---|
| 561 | 194946000,195497900,
|
|---|
| 562 | 195015900,195391500,
|
|---|
| 563 | 195029100,195373500,
|
|---|
| 564 | 195040300,195343700,
|
|---|
| 565 | 195041700,195311900,
|
|---|
| 566 | 195033300,195281300,
|
|---|
| 567 | 195015900,195254600,
|
|---|
| 568 | 194957900,195172400,
|
|---|
| 569 | 194916300,195052100,
|
|---|
| 570 | 194913800,194924800,
|
|---|
| 571 | 194950900,194803000,
|
|---|
| 572 | 195023700,194698600,
|
|---|
| 573 | 195032000,194687200,
|
|---|
| 574 | 195037200,194672200,
|
|---|
| 575 | 195037500,194656200,
|
|---|
| 576 | 195032900,194641000,
|
|---|
| 577 | 195023700,194628000,
|
|---|
| 578 | 194957900,194537400,
|
|---|
| 579 | 194916300,194417100,
|
|---|
| 580 | 194913900,194289800,
|
|---|
| 581 | 194950900,194168000,
|
|---|
| 582 | 195023700,194063600,
|
|---|
| 583 | 195032000,194052200,
|
|---|
| 584 | 195037200,194037200,
|
|---|
| 585 | 195037500,194021200,
|
|---|
| 586 | 195032900,194006000,
|
|---|
| 587 | 195023700,193993000,
|
|---|
| 588 | 194957900,193902400,
|
|---|
| 589 | 194916300,193782100,
|
|---|
| 590 | 194913900,193654800,
|
|---|
| 591 | 194950900,193533000,
|
|---|
| 592 | 195023700,193428600,
|
|---|
| 593 | 195032000,193417200,
|
|---|
| 594 | 195037200,193402200,
|
|---|
| 595 | 195037500,193386200,
|
|---|
| 596 | 195032900,193371000,
|
|---|
| 597 | 195023700,193358000,
|
|---|
| 598 | 194957900,193267400,
|
|---|
| 599 | 194916300,193147100,
|
|---|
| 600 | 194913900,193019800,
|
|---|
| 601 | 194950900,192898000,
|
|---|
| 602 | 195023700,192793600,
|
|---|
| 603 | 195125300,192716900,
|
|---|
| 604 | 195245600,192675200,
|
|---|
| 605 | 195372900,192672800,
|
|---|
| 606 | 195494700,192709800,
|
|---|
| 607 | 195599100,192782700,
|
|---|
| 608 | 195675800,192884200,
|
|---|
| 609 | 195717400,193004500,
|
|---|
| 610 | 195719900,193131800,
|
|---|
| 611 | 195682800,193253600,
|
|---|
| 612 | 195610000,193358000,
|
|---|
| 613 | 195601700,193369400,
|
|---|
| 614 | 195596500,193384500,
|
|---|
| 615 | 195596200,193400400,
|
|---|
| 616 | 195600900,193415600,
|
|---|
| 617 | 195610000,193428600,
|
|---|
| 618 | 195675800,193519200,
|
|---|
| 619 | 195717400,193639500,
|
|---|
| 620 | 195719900,193766800,
|
|---|
| 621 | 195682800,193888600,
|
|---|
| 622 | 195610000,193993000,
|
|---|
| 623 | 195601700,194004400,
|
|---|
| 624 | 195596500,194019500,
|
|---|
| 625 | 195596200,194035400,
|
|---|
| 626 | 195600900,194050600,
|
|---|
| 627 | 195610000,194063600,
|
|---|
| 628 | 195675800,194154200,
|
|---|
| 629 | 195717400,194274500,
|
|---|
| 630 | 195719900,194401800,
|
|---|
| 631 | 195682800,194523600,
|
|---|
| 632 | 195610000,194628000,
|
|---|
| 633 | 195601700,194639400,
|
|---|
| 634 | 195596500,194654500,
|
|---|
| 635 | 195596200,194670400,
|
|---|
| 636 | 195600900,194685600,
|
|---|
| 637 | 195610000,194698600,
|
|---|
| 638 | 195670300,194779200,
|
|---|
| 639 | 195715300,194898300,
|
|---|
| 640 | 195721300,195025400,
|
|---|
| 641 | 195687700,195148200,
|
|---|
| 642 | 195617800,195254600,
|
|---|
| 643 | 195604700,195272800,
|
|---|
| 644 | 195593500,195302500,
|
|---|
| 645 | 195592000,195334300,
|
|---|
| 646 | 195600300,195365000,
|
|---|
| 647 | 195617800,195391500,
|
|---|
| 648 | 195670300,195463700,
|
|---|
| 649 | 195715300,195582800,
|
|---|
| 650 | 195721300,195709900
|
|---|
| 651 | };
|
|---|
| 652 |
|
|---|
| 653 | hole_points.clear();
|
|---|
| 654 | for (size_t i = 0; i < sizeof(hole_11_data) / sizeof(*hole_11_data); i += 2) {
|
|---|
| 655 | hole_points.push_back(BPoint(hole_11_data[i], hole_11_data[i + 1]));
|
|---|
| 656 | }
|
|---|
| 657 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 658 |
|
|---|
| 659 | long double hole_12_data[] = {
|
|---|
| 660 | 231627700,156766300,
|
|---|
| 661 | 231615876,156863678,
|
|---|
| 662 | 231581092,156955396,
|
|---|
| 663 | 231525369,157036125,
|
|---|
| 664 | 231451946,157101172,
|
|---|
| 665 | 231365089,157146758,
|
|---|
| 666 | 231269846,157170233,
|
|---|
| 667 | 231171754,157170233,
|
|---|
| 668 | 231076511,157146758,
|
|---|
| 669 | 230989654,157101172,
|
|---|
| 670 | 230916231,157036125,
|
|---|
| 671 | 230860508,156955396,
|
|---|
| 672 | 230825724,156863678,
|
|---|
| 673 | 230813900,156766300,
|
|---|
| 674 | 230825724,156668922,
|
|---|
| 675 | 230860508,156577204,
|
|---|
| 676 | 230916231,156496475,
|
|---|
| 677 | 230989654,156431428,
|
|---|
| 678 | 231076511,156385842,
|
|---|
| 679 | 231171754,156362367,
|
|---|
| 680 | 231269846,156362367,
|
|---|
| 681 | 231365089,156385842,
|
|---|
| 682 | 231451946,156431428,
|
|---|
| 683 | 231525369,156496475,
|
|---|
| 684 | 231581092,156577204,
|
|---|
| 685 | 231615876,156668922,
|
|---|
| 686 | 231627700,156766300
|
|---|
| 687 | };
|
|---|
| 688 |
|
|---|
| 689 | hole_points.clear();
|
|---|
| 690 | for (size_t i = 0; i < sizeof(hole_12_data) / sizeof(*hole_12_data); i += 2) {
|
|---|
| 691 | hole_points.push_back(BPoint(hole_12_data[i], hole_12_data[i + 1]));
|
|---|
| 692 | }
|
|---|
| 693 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 694 |
|
|---|
| 695 | long double hole_13_data[] = {
|
|---|
| 696 | 232827755,150140138,
|
|---|
| 697 | 232801600,150305200,
|
|---|
| 698 | 232720400,150464700,
|
|---|
| 699 | 232593800,150591200,
|
|---|
| 700 | 232477433,150650551,
|
|---|
| 701 | 232493443,150474451,
|
|---|
| 702 | 232646447,150321447,
|
|---|
| 703 | 232827755,150140138
|
|---|
| 704 | };
|
|---|
| 705 |
|
|---|
| 706 | hole_points.clear();
|
|---|
| 707 | for (size_t i = 0; i < sizeof(hole_13_data) / sizeof(*hole_13_data); i += 2) {
|
|---|
| 708 | hole_points.push_back(BPoint(hole_13_data[i], hole_13_data[i + 1]));
|
|---|
| 709 | }
|
|---|
| 710 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 711 |
|
|---|
| 712 | long double hole_14_data[] = {
|
|---|
| 713 | 233362303,156912990,
|
|---|
| 714 | 233297275,157238132,
|
|---|
| 715 | 233291600,157222600,
|
|---|
| 716 | 233287000,157095400,
|
|---|
| 717 | 233321900,156973000,
|
|---|
| 718 | 233362303,156912990
|
|---|
| 719 | };
|
|---|
| 720 |
|
|---|
| 721 | hole_points.clear();
|
|---|
| 722 | for (size_t i = 0; i < sizeof(hole_14_data) / sizeof(*hole_14_data); i += 2) {
|
|---|
| 723 | hole_points.push_back(BPoint(hole_14_data[i], hole_14_data[i + 1]));
|
|---|
| 724 | }
|
|---|
| 725 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 726 |
|
|---|
| 727 | long double hole_15_data[] = {
|
|---|
| 728 | 233528178,156083619,
|
|---|
| 729 | 233397669,156736164,
|
|---|
| 730 | 233393000,156729200,
|
|---|
| 731 | 233335300,156649800,
|
|---|
| 732 | 233291600,156530200,
|
|---|
| 733 | 233287000,156403000,
|
|---|
| 734 | 233321900,156280600,
|
|---|
| 735 | 233393000,156174900,
|
|---|
| 736 | 233493200,156096400,
|
|---|
| 737 | 233528178,156083619
|
|---|
| 738 | };
|
|---|
| 739 |
|
|---|
| 740 | hole_points.clear();
|
|---|
| 741 | for (size_t i = 0; i < sizeof(hole_15_data) / sizeof(*hole_15_data); i += 2) {
|
|---|
| 742 | hole_points.push_back(BPoint(hole_15_data[i], hole_15_data[i + 1]));
|
|---|
| 743 | }
|
|---|
| 744 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 745 |
|
|---|
| 746 | long double hole_16_data[] = {
|
|---|
| 747 | 234262700,152323800,
|
|---|
| 748 | 234247248,152433629,
|
|---|
| 749 | 234192743,152532547,
|
|---|
| 750 | 234178199,152561636,
|
|---|
| 751 | 234123012,152688565,
|
|---|
| 752 | 234042700,152774600,
|
|---|
| 753 | 234061053,152831071,
|
|---|
| 754 | 233483178,154160183,
|
|---|
| 755 | 233551326,155032483,
|
|---|
| 756 | 233514200,155026600,
|
|---|
| 757 | 233354900,154945400,
|
|---|
| 758 | 233228400,154818900,
|
|---|
| 759 | 233147200,154659500,
|
|---|
| 760 | 233119200,154482800,
|
|---|
| 761 | 233119200,153593500,
|
|---|
| 762 | 233136200,153455000,
|
|---|
| 763 | 233206200,153290300,
|
|---|
| 764 | 233323600,153155400,
|
|---|
| 765 | 233311500,153131500,
|
|---|
| 766 | 233276100,153009200,
|
|---|
| 767 | 233280300,152881900,
|
|---|
| 768 | 233323600,152762200,
|
|---|
| 769 | 233228400,152660100,
|
|---|
| 770 | 233147200,152500700,
|
|---|
| 771 | 233119200,152324100,
|
|---|
| 772 | 233119200,151612600,
|
|---|
| 773 | 233147200,151435900,
|
|---|
| 774 | 233228400,151276500,
|
|---|
| 775 | 233354900,151150000,
|
|---|
| 776 | 233514200,151068800,
|
|---|
| 777 | 233690900,151040800,
|
|---|
| 778 | 233867600,151068800,
|
|---|
| 779 | 234027000,151150000,
|
|---|
| 780 | 234153500,151276500,
|
|---|
| 781 | 234234700,151435900,
|
|---|
| 782 | 234262700,151612600,
|
|---|
| 783 | 234262700,152323800
|
|---|
| 784 | };
|
|---|
| 785 |
|
|---|
| 786 | hole_points.clear();
|
|---|
| 787 | for (size_t i = 0; i < sizeof(hole_16_data) / sizeof(*hole_16_data); i += 2) {
|
|---|
| 788 | hole_points.push_back(BPoint(hole_16_data[i], hole_16_data[i + 1]));
|
|---|
| 789 | }
|
|---|
| 790 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 791 |
|
|---|
| 792 | long double hole_17_data[] = {
|
|---|
| 793 | 234859075,150326969,
|
|---|
| 794 | 234773200,150389300,
|
|---|
| 795 | 234603100,150444600,
|
|---|
| 796 | 234424200,150444600,
|
|---|
| 797 | 234254000,150389300,
|
|---|
| 798 | 234109300,150284200,
|
|---|
| 799 | 233750100,149925000,
|
|---|
| 800 | 234343034,149925000,
|
|---|
| 801 | 234571180,150039073,
|
|---|
| 802 | 234753553,150221447,
|
|---|
| 803 | 234859075,150326969
|
|---|
| 804 | };
|
|---|
| 805 |
|
|---|
| 806 | hole_points.clear();
|
|---|
| 807 | for (size_t i = 0; i < sizeof(hole_17_data) / sizeof(*hole_17_data); i += 2) {
|
|---|
| 808 | hole_points.push_back(BPoint(hole_17_data[i], hole_17_data[i + 1]));
|
|---|
| 809 | }
|
|---|
| 810 | hole_set |= BPolygon(hole_points.begin(), hole_points.end());
|
|---|
| 811 | cout << "Data is set" <<endl;
|
|---|
| 812 |
|
|---|
| 813 | assign(rect_set, rect_set - hole_set);
|
|---|
| 814 | cout << "Substruction is done" <<endl;
|
|---|
| 815 |
|
|---|
| 816 | vector<BPolygonWithHoles> result;
|
|---|
| 817 | //CRASH IS HERE ---------------
|
|---|
| 818 | rect_set.get(result);
|
|---|
| 819 | cout << "Polygons with holes data is set" <<endl;
|
|---|
| 820 |
|
|---|
| 821 | cout<< "Finished succefully" << endl;
|
|---|
| 822 | cout << "Number of relevant rectungles "<< result.size() <<endl;
|
|---|
| 823 | }
|
|---|