mirror of
https://github.com/felt/tippecanoe.git
synced 2026-10-02 08:25:40 +02:00
Upgrade to Wagyu 0.3.0; downgrade C++ requirement to C++ 11
This commit is contained in:
@@ -5,11 +5,6 @@
|
||||
#include <mapbox/geometry/polygon.hpp>
|
||||
#include <mapbox/geometry/wagyu/wagyu.hpp>
|
||||
|
||||
#include <experimental/optional>
|
||||
|
||||
template <typename T>
|
||||
using optional_linear_ring = std::experimental::optional<mapbox::geometry::linear_ring<T>>;
|
||||
|
||||
namespace mapbox {
|
||||
namespace geometry {
|
||||
namespace wagyu {
|
||||
@@ -61,7 +56,7 @@ bool inside(mapbox::geometry::point<T> p, size_t edge, mapbox::geometry::box<T>
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
optional_linear_ring<T> quick_lr_clip(mapbox::geometry::linear_ring<T> const& ring,
|
||||
mapbox::geometry::linear_ring<T> quick_lr_clip(mapbox::geometry::linear_ring<T> const& ring,
|
||||
mapbox::geometry::box<T> const& b) {
|
||||
mapbox::geometry::linear_ring<T> out = ring;
|
||||
|
||||
@@ -89,13 +84,14 @@ optional_linear_ring<T> quick_lr_clip(mapbox::geometry::linear_ring<T> const& ri
|
||||
}
|
||||
|
||||
if (out.size() < 3) {
|
||||
return optional_linear_ring<T>();
|
||||
out.clear();
|
||||
return out;
|
||||
}
|
||||
// Close the ring if the first/last point was outside
|
||||
if (out[0] != out[out.size() - 1]) {
|
||||
out.push_back(out[0]);
|
||||
}
|
||||
return optional_linear_ring<T>(std::move(out));
|
||||
return out;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,8 +103,8 @@ mapbox::geometry::multi_polygon<T> clip(mapbox::geometry::polygon<T> const& poly
|
||||
wagyu<T> clipper;
|
||||
for (auto const& lr : poly) {
|
||||
auto new_lr = quick_clip::quick_lr_clip(lr, b);
|
||||
if (new_lr) {
|
||||
clipper.add_ring(*new_lr, polygon_type_subject);
|
||||
if (!new_lr.empty()) {
|
||||
clipper.add_ring(new_lr, polygon_type_subject);
|
||||
}
|
||||
}
|
||||
clipper.execute(clip_type_union, result, subject_fill_type, fill_type_even_odd);
|
||||
@@ -124,8 +120,8 @@ mapbox::geometry::multi_polygon<T> clip(mapbox::geometry::multi_polygon<T> const
|
||||
for (auto const& poly : mp) {
|
||||
for (auto const& lr : poly) {
|
||||
auto new_lr = quick_clip::quick_lr_clip(lr, b);
|
||||
if (new_lr) {
|
||||
clipper.add_ring(*new_lr, polygon_type_subject);
|
||||
if (!new_lr.empty()) {
|
||||
clipper.add_ring(new_lr, polygon_type_subject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,12 @@
|
||||
#include <mapbox/geometry/wagyu/topology_correction.hpp>
|
||||
#include <mapbox/geometry/wagyu/vatti.hpp>
|
||||
|
||||
#define WAGYU_MAJOR_VERSION 0
|
||||
#define WAGYU_MINOR_VERSION 3
|
||||
#define WAGYU_PATCH_VERSION 0
|
||||
|
||||
#define WAGYU_VERSION (WAGYU_MAJOR_VERSION * 100000) + (WAGYU_MINOR_VERSION * 100) + (WAGYU_PATCH_VERSION)
|
||||
|
||||
namespace mapbox {
|
||||
namespace geometry {
|
||||
namespace wagyu {
|
||||
|
||||
Reference in New Issue
Block a user