Use faster bbox-specialised clipping algorithm #482
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When writing tiles, we spend a lot of time in
boost::geometry::intersection
. This is an all-purpose polygon intersection routine. Our needs are more specialised: we just want to clip polygons to a rectangular bounding box.This PR replaces the call to
boost::geometry::intersection
with a simpler and (hopefully) faster clipping routine - the Sutherland-Hodgman algorithm, ported from https://github.com/mapbox/lineclip.Comparative timings:
File size is similar and as yet I haven't spotted any rendering artefacts.