mirror of
https://github.com/felt/tippecanoe.git
synced 2026-10-06 02:15:41 +02:00
Fix clipping of polygons with multiple rings.
This commit is contained in:
@@ -487,7 +487,7 @@ drawvec clip_poly(drawvec &geom, int z, int detail) {
|
|||||||
if (geom[i].op == VT_MOVETO) {
|
if (geom[i].op == VT_MOVETO) {
|
||||||
unsigned j;
|
unsigned j;
|
||||||
for (j = i + 1; j < geom.size(); j++) {
|
for (j = i + 1; j < geom.size(); j++) {
|
||||||
if (geom[j].op == VT_CLOSEPATH) {
|
if (geom[j].op == VT_CLOSEPATH || geom[j].op == VT_MOVETO) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -501,8 +501,12 @@ drawvec clip_poly(drawvec &geom, int z, int detail) {
|
|||||||
out.push_back(tmp[k]);
|
out.push_back(tmp[k]);
|
||||||
}
|
}
|
||||||
|
|
||||||
out.push_back(draw(VT_CLOSEPATH, 0, 0));
|
if (j >= geom.size() || geom[j].op == VT_CLOSEPATH) {
|
||||||
i = j;
|
out.push_back(draw(VT_CLOSEPATH, 0, 0));
|
||||||
|
i = j;
|
||||||
|
} else {
|
||||||
|
i = j - 1;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
out.push_back(geom[i]);
|
out.push_back(geom[i]);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user