Add support for expression test
Fix polygon within algorithm Add Unit tests Fix incorrect metrics folder for ios-render-test-runner job
This commit is contained in:
@@ -188,6 +188,7 @@ add_library(
|
||||
${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/step.hpp
|
||||
${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/type.hpp
|
||||
${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/value.hpp
|
||||
${PROJECT_SOURCE_DIR}/include/mbgl/style/expression/within.hpp
|
||||
${PROJECT_SOURCE_DIR}/include/mbgl/style/filter.hpp
|
||||
${PROJECT_SOURCE_DIR}/include/mbgl/style/image.hpp
|
||||
${PROJECT_SOURCE_DIR}/include/mbgl/style/layer.hpp
|
||||
@@ -578,6 +579,7 @@ add_library(
|
||||
${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/util.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/util.hpp
|
||||
${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/value.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/mbgl/style/expression/within.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/mbgl/style/filter.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/mbgl/style/image.cpp
|
||||
${PROJECT_SOURCE_DIR}/src/mbgl/style/image_impl.cpp
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
|
||||
#include <args.hxx>
|
||||
|
||||
#include <regex>
|
||||
|
||||
using namespace mbgl;
|
||||
using namespace mbgl::style;
|
||||
using namespace mbgl::style::conversion;
|
||||
@@ -254,6 +256,19 @@ bool parseInputs(const JSValue& inputsValue, TestData& data) {
|
||||
heatmapDensity = evaluationContext["heatmapDensity"].GetDouble();
|
||||
}
|
||||
|
||||
// Parse canonicalID
|
||||
optional<CanonicalTileID> canonical;
|
||||
if (evaluationContext.HasMember("canonicalID")) {
|
||||
assert(evaluationContext["canonicalID"].IsObject());
|
||||
assert(
|
||||
evaluationContext["canonicalID"].HasMember("z") && evaluationContext["canonicalID"]["z"].IsNumber() &&
|
||||
evaluationContext["canonicalID"].HasMember("x") && evaluationContext["canonicalID"]["x"].IsNumber() &&
|
||||
evaluationContext["canonicalID"].HasMember("y") && evaluationContext["canonicalID"]["y"].IsNumber());
|
||||
canonical = CanonicalTileID(evaluationContext["canonicalID"]["z"].GetUint(),
|
||||
evaluationContext["canonicalID"]["x"].GetUint(),
|
||||
evaluationContext["canonicalID"]["y"].GetUint());
|
||||
}
|
||||
|
||||
// Parse availableImages
|
||||
std::set<std::string> availableImages;
|
||||
if (evaluationContext.HasMember("availableImages")) {
|
||||
@@ -282,8 +297,11 @@ bool parseInputs(const JSValue& inputsValue, TestData& data) {
|
||||
feature.id = mapbox::geojson::convert<mapbox::feature::identifier>(featureObject["id"]);
|
||||
}
|
||||
|
||||
data.inputs.emplace_back(
|
||||
std::move(zoom), std::move(heatmapDensity), std::move(availableImages), std::move(feature));
|
||||
data.inputs.emplace_back(std::move(zoom),
|
||||
std::move(heatmapDensity),
|
||||
std::move(canonical),
|
||||
std::move(availableImages),
|
||||
std::move(feature));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -294,11 +312,11 @@ std::tuple<filesystem::path, std::vector<filesystem::path>, bool, uint32_t> pars
|
||||
args::ArgumentParser argumentParser("Mapbox GL Expression Test Runner");
|
||||
|
||||
args::HelpFlag helpFlag(argumentParser, "help", "Display this help menu", { 'h', "help" });
|
||||
args::Flag shuffleFlag(argumentParser, "shuffle", "Toggle shuffling the tests order",
|
||||
{ 's', "shuffle" });
|
||||
args::Flag shuffleFlag(argumentParser, "shuffle", "Toggle shuffling the tests order", {'s', "shuffle"});
|
||||
args::ValueFlag<uint32_t> seedValue(argumentParser, "seed", "Shuffle seed (default: random)",
|
||||
{ "seed" });
|
||||
args::PositionalList<std::string> testNameValues(argumentParser, "URL", "Test name(s)");
|
||||
args::ValueFlag<std::string> testFilterValue(argumentParser, "filter", "Test filter regex", {'f', "filter"});
|
||||
|
||||
try {
|
||||
argumentParser.ParseCLI(argc, argv);
|
||||
@@ -336,6 +354,7 @@ std::tuple<filesystem::path, std::vector<filesystem::path>, bool, uint32_t> pars
|
||||
paths.emplace_back(rootPath);
|
||||
}
|
||||
|
||||
auto testFilter = testFilterValue ? args::get(testFilterValue) : std::string{};
|
||||
// Recursively traverse through the test paths and collect test directories containing "test.json".
|
||||
std::vector<filesystem::path> testPaths;
|
||||
testPaths.reserve(paths.size());
|
||||
@@ -346,6 +365,9 @@ std::tuple<filesystem::path, std::vector<filesystem::path>, bool, uint32_t> pars
|
||||
}
|
||||
|
||||
for (auto& testPath : filesystem::recursive_directory_iterator(path)) {
|
||||
if (!testFilter.empty() && !std::regex_search(testPath.path().string(), std::regex(testFilter))) {
|
||||
continue;
|
||||
}
|
||||
if (testPath.path().filename() == "test.json") {
|
||||
testPaths.emplace_back(testPath.path());
|
||||
}
|
||||
|
||||
@@ -16,14 +16,17 @@ using namespace mbgl;
|
||||
struct Input {
|
||||
Input(optional<float> zoom_,
|
||||
optional<double> heatmapDensity_,
|
||||
optional<CanonicalTileID> canonical_,
|
||||
std::set<std::string> availableImages_,
|
||||
Feature feature_)
|
||||
: zoom(std::move(zoom_)),
|
||||
heatmapDensity(std::move(heatmapDensity_)),
|
||||
canonical(std::move(canonical_)),
|
||||
availableImages(std::move(availableImages_)),
|
||||
feature(std::move(feature_)) {}
|
||||
optional<float> zoom;
|
||||
optional<double> heatmapDensity;
|
||||
optional<CanonicalTileID> canonical;
|
||||
std::set<std::string> availableImages;
|
||||
Feature feature;
|
||||
};
|
||||
|
||||
@@ -104,8 +104,14 @@ TestRunOutput runExpressionTest(TestData& data, const std::string& rootPath, con
|
||||
std::vector<Value> outputs;
|
||||
if (!data.inputs.empty()) {
|
||||
for (const auto& input : data.inputs) {
|
||||
auto evaluationResult =
|
||||
expression->evaluate(input.zoom, input.feature, input.heatmapDensity, input.availableImages);
|
||||
mbgl::style::expression::EvaluationResult evaluationResult;
|
||||
if (input.canonical) {
|
||||
evaluationResult = expression->evaluate(
|
||||
input.zoom, input.feature, input.heatmapDensity, input.availableImages, *input.canonical);
|
||||
} else {
|
||||
evaluationResult =
|
||||
expression->evaluate(input.zoom, input.feature, input.heatmapDensity, input.availableImages);
|
||||
}
|
||||
if (!evaluationResult) {
|
||||
std::unordered_map<std::string, Value> error{{"error", Value{evaluationResult.error().message}}};
|
||||
outputs.emplace_back(Value{std::move(error)});
|
||||
|
||||
@@ -191,6 +191,11 @@ public:
|
||||
const Feature& feature,
|
||||
optional<double> colorRampParameter,
|
||||
const std::set<std::string>& availableImages) const;
|
||||
EvaluationResult evaluate(optional<float> zoom,
|
||||
const Feature& feature,
|
||||
optional<double> colorRampParameter,
|
||||
const std::set<std::string>& availableImages,
|
||||
const CanonicalTileID& canonical) const;
|
||||
EvaluationResult evaluate(optional<mbgl::Value> accumulated, const Feature& feature) const;
|
||||
|
||||
/**
|
||||
|
||||
@@ -31,10 +31,10 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
std::vector<optional<Value>> possibleOutputs() const override { return {{false}}; }
|
||||
std::vector<optional<Value>> possibleOutputs() const override { return {{true}, {false}}; }
|
||||
|
||||
mbgl::Value serialize() const override;
|
||||
std::string getOperator() const override { return "Within"; }
|
||||
std::string getOperator() const override { return "within"; }
|
||||
|
||||
private:
|
||||
GeoJSON geoJSONSource;
|
||||
|
||||
1010
next/CMakeLists.txt
1010
next/CMakeLists.txt
File diff suppressed because it is too large
Load Diff
@@ -1,817 +0,0 @@
|
||||
{
|
||||
"//": "This file is generated. Do not edit. Regenerate it with scripts/generate-file-lists.js",
|
||||
"sources": [
|
||||
"src/csscolorparser/csscolorparser.cpp",
|
||||
"src/mbgl/actor/mailbox.cpp",
|
||||
"src/mbgl/actor/scheduler.cpp",
|
||||
"src/mbgl/annotation/annotation_manager.cpp",
|
||||
"src/mbgl/annotation/annotation_source.cpp",
|
||||
"src/mbgl/annotation/annotation_tile.cpp",
|
||||
"src/mbgl/annotation/fill_annotation_impl.cpp",
|
||||
"src/mbgl/annotation/line_annotation_impl.cpp",
|
||||
"src/mbgl/annotation/render_annotation_source.cpp",
|
||||
"src/mbgl/annotation/shape_annotation_impl.cpp",
|
||||
"src/mbgl/annotation/symbol_annotation_impl.cpp",
|
||||
"src/mbgl/geometry/dem_data.cpp",
|
||||
"src/mbgl/geometry/feature_index.cpp",
|
||||
"src/mbgl/geometry/line_atlas.cpp",
|
||||
"src/mbgl/gfx/attribute.cpp",
|
||||
"src/mbgl/gfx/renderer_backend.cpp",
|
||||
"src/mbgl/gfx/rendering_stats.cpp",
|
||||
"src/mbgl/gl/attribute.cpp",
|
||||
"src/mbgl/gl/command_encoder.cpp",
|
||||
"src/mbgl/gl/context.cpp",
|
||||
"src/mbgl/gl/custom_layer.cpp",
|
||||
"src/mbgl/gl/custom_layer_factory.cpp",
|
||||
"src/mbgl/gl/custom_layer_impl.cpp",
|
||||
"src/mbgl/gl/debugging_extension.cpp",
|
||||
"src/mbgl/gl/enum.cpp",
|
||||
"src/mbgl/gl/index_buffer_resource.cpp",
|
||||
"src/mbgl/gl/object.cpp",
|
||||
"src/mbgl/gl/offscreen_texture.cpp",
|
||||
"src/mbgl/gl/render_custom_layer.cpp",
|
||||
"src/mbgl/gl/render_pass.cpp",
|
||||
"src/mbgl/gl/renderer_backend.cpp",
|
||||
"src/mbgl/gl/texture.cpp",
|
||||
"src/mbgl/gl/texture_resource.cpp",
|
||||
"src/mbgl/gl/uniform.cpp",
|
||||
"src/mbgl/gl/upload_pass.cpp",
|
||||
"src/mbgl/gl/value.cpp",
|
||||
"src/mbgl/gl/vertex_array.cpp",
|
||||
"src/mbgl/gl/vertex_buffer_resource.cpp",
|
||||
"src/mbgl/layermanager/background_layer_factory.cpp",
|
||||
"src/mbgl/layermanager/circle_layer_factory.cpp",
|
||||
"src/mbgl/layermanager/fill_extrusion_layer_factory.cpp",
|
||||
"src/mbgl/layermanager/fill_layer_factory.cpp",
|
||||
"src/mbgl/layermanager/heatmap_layer_factory.cpp",
|
||||
"src/mbgl/layermanager/hillshade_layer_factory.cpp",
|
||||
"src/mbgl/layermanager/layer_factory.cpp",
|
||||
"src/mbgl/layermanager/layer_manager.cpp",
|
||||
"src/mbgl/layermanager/line_layer_factory.cpp",
|
||||
"src/mbgl/layermanager/raster_layer_factory.cpp",
|
||||
"src/mbgl/layermanager/symbol_layer_factory.cpp",
|
||||
"src/mbgl/layout/clip_lines.cpp",
|
||||
"src/mbgl/layout/merge_lines.cpp",
|
||||
"src/mbgl/layout/symbol_instance.cpp",
|
||||
"src/mbgl/layout/symbol_layout.cpp",
|
||||
"src/mbgl/layout/symbol_projection.cpp",
|
||||
"src/mbgl/map/map.cpp",
|
||||
"src/mbgl/map/map_impl.cpp",
|
||||
"src/mbgl/map/map_options.cpp",
|
||||
"src/mbgl/map/transform.cpp",
|
||||
"src/mbgl/map/transform_state.cpp",
|
||||
"src/mbgl/math/log2.cpp",
|
||||
"src/mbgl/platform/gl_functions.cpp",
|
||||
"src/mbgl/platform/settings.cpp",
|
||||
"src/mbgl/programs/background_program.cpp",
|
||||
"src/mbgl/programs/circle_program.cpp",
|
||||
"src/mbgl/programs/clipping_mask_program.cpp",
|
||||
"src/mbgl/programs/collision_box_program.cpp",
|
||||
"src/mbgl/programs/debug_program.cpp",
|
||||
"src/mbgl/programs/fill_extrusion_program.cpp",
|
||||
"src/mbgl/programs/fill_program.cpp",
|
||||
"src/mbgl/programs/gl/background.cpp",
|
||||
"src/mbgl/programs/gl/background_pattern.cpp",
|
||||
"src/mbgl/programs/gl/circle.cpp",
|
||||
"src/mbgl/programs/gl/clipping_mask.cpp",
|
||||
"src/mbgl/programs/gl/collision_box.cpp",
|
||||
"src/mbgl/programs/gl/collision_circle.cpp",
|
||||
"src/mbgl/programs/gl/debug.cpp",
|
||||
"src/mbgl/programs/gl/fill.cpp",
|
||||
"src/mbgl/programs/gl/fill_extrusion.cpp",
|
||||
"src/mbgl/programs/gl/fill_extrusion_pattern.cpp",
|
||||
"src/mbgl/programs/gl/fill_outline.cpp",
|
||||
"src/mbgl/programs/gl/fill_outline_pattern.cpp",
|
||||
"src/mbgl/programs/gl/fill_pattern.cpp",
|
||||
"src/mbgl/programs/gl/heatmap.cpp",
|
||||
"src/mbgl/programs/gl/heatmap_texture.cpp",
|
||||
"src/mbgl/programs/gl/hillshade.cpp",
|
||||
"src/mbgl/programs/gl/hillshade_prepare.cpp",
|
||||
"src/mbgl/programs/gl/line.cpp",
|
||||
"src/mbgl/programs/gl/line_gradient.cpp",
|
||||
"src/mbgl/programs/gl/line_pattern.cpp",
|
||||
"src/mbgl/programs/gl/line_sdf.cpp",
|
||||
"src/mbgl/programs/gl/raster.cpp",
|
||||
"src/mbgl/programs/gl/shader_source.cpp",
|
||||
"src/mbgl/programs/gl/shaders.cpp",
|
||||
"src/mbgl/programs/gl/symbol_icon.cpp",
|
||||
"src/mbgl/programs/gl/symbol_sdf_icon.cpp",
|
||||
"src/mbgl/programs/gl/symbol_sdf_text.cpp",
|
||||
"src/mbgl/programs/gl/symbol_text_and_icon.cpp",
|
||||
"src/mbgl/programs/heatmap_program.cpp",
|
||||
"src/mbgl/programs/heatmap_texture_program.cpp",
|
||||
"src/mbgl/programs/hillshade_prepare_program.cpp",
|
||||
"src/mbgl/programs/hillshade_program.cpp",
|
||||
"src/mbgl/programs/line_program.cpp",
|
||||
"src/mbgl/programs/program_parameters.cpp",
|
||||
"src/mbgl/programs/programs.cpp",
|
||||
"src/mbgl/programs/raster_program.cpp",
|
||||
"src/mbgl/programs/symbol_program.cpp",
|
||||
"src/mbgl/renderer/backend_scope.cpp",
|
||||
"src/mbgl/renderer/bucket_parameters.cpp",
|
||||
"src/mbgl/renderer/buckets/circle_bucket.cpp",
|
||||
"src/mbgl/renderer/buckets/debug_bucket.cpp",
|
||||
"src/mbgl/renderer/buckets/fill_bucket.cpp",
|
||||
"src/mbgl/renderer/buckets/fill_extrusion_bucket.cpp",
|
||||
"src/mbgl/renderer/buckets/heatmap_bucket.cpp",
|
||||
"src/mbgl/renderer/buckets/hillshade_bucket.cpp",
|
||||
"src/mbgl/renderer/buckets/line_bucket.cpp",
|
||||
"src/mbgl/renderer/buckets/raster_bucket.cpp",
|
||||
"src/mbgl/renderer/buckets/symbol_bucket.cpp",
|
||||
"src/mbgl/renderer/cross_faded_property_evaluator.cpp",
|
||||
"src/mbgl/renderer/group_by_layout.cpp",
|
||||
"src/mbgl/renderer/image_atlas.cpp",
|
||||
"src/mbgl/renderer/image_manager.cpp",
|
||||
"src/mbgl/renderer/layers/render_background_layer.cpp",
|
||||
"src/mbgl/renderer/layers/render_circle_layer.cpp",
|
||||
"src/mbgl/renderer/layers/render_fill_extrusion_layer.cpp",
|
||||
"src/mbgl/renderer/layers/render_fill_layer.cpp",
|
||||
"src/mbgl/renderer/layers/render_heatmap_layer.cpp",
|
||||
"src/mbgl/renderer/layers/render_hillshade_layer.cpp",
|
||||
"src/mbgl/renderer/layers/render_line_layer.cpp",
|
||||
"src/mbgl/renderer/layers/render_raster_layer.cpp",
|
||||
"src/mbgl/renderer/layers/render_symbol_layer.cpp",
|
||||
"src/mbgl/renderer/paint_parameters.cpp",
|
||||
"src/mbgl/renderer/pattern_atlas.cpp",
|
||||
"src/mbgl/renderer/render_layer.cpp",
|
||||
"src/mbgl/renderer/render_light.cpp",
|
||||
"src/mbgl/renderer/render_orchestrator.cpp",
|
||||
"src/mbgl/renderer/render_source.cpp",
|
||||
"src/mbgl/renderer/render_static_data.cpp",
|
||||
"src/mbgl/renderer/render_tile.cpp",
|
||||
"src/mbgl/renderer/renderer.cpp",
|
||||
"src/mbgl/renderer/renderer_impl.cpp",
|
||||
"src/mbgl/renderer/renderer_state.cpp",
|
||||
"src/mbgl/renderer/source_state.cpp",
|
||||
"src/mbgl/renderer/sources/render_custom_geometry_source.cpp",
|
||||
"src/mbgl/renderer/sources/render_geojson_source.cpp",
|
||||
"src/mbgl/renderer/sources/render_image_source.cpp",
|
||||
"src/mbgl/renderer/sources/render_raster_dem_source.cpp",
|
||||
"src/mbgl/renderer/sources/render_raster_source.cpp",
|
||||
"src/mbgl/renderer/sources/render_tile_source.cpp",
|
||||
"src/mbgl/renderer/sources/render_vector_source.cpp",
|
||||
"src/mbgl/renderer/style_diff.cpp",
|
||||
"src/mbgl/renderer/tile_pyramid.cpp",
|
||||
"src/mbgl/renderer/tile_render_data.cpp",
|
||||
"src/mbgl/sprite/sprite_loader.cpp",
|
||||
"src/mbgl/sprite/sprite_loader_worker.cpp",
|
||||
"src/mbgl/sprite/sprite_parser.cpp",
|
||||
"src/mbgl/storage/file_source_manager.cpp",
|
||||
"src/mbgl/storage/network_status.cpp",
|
||||
"src/mbgl/storage/resource.cpp",
|
||||
"src/mbgl/storage/resource_options.cpp",
|
||||
"src/mbgl/storage/resource_transform.cpp",
|
||||
"src/mbgl/storage/response.cpp",
|
||||
"src/mbgl/style/conversion/color_ramp_property_value.cpp",
|
||||
"src/mbgl/style/conversion/constant.cpp",
|
||||
"src/mbgl/style/conversion/coordinate.cpp",
|
||||
"src/mbgl/style/conversion/custom_geometry_source_options.cpp",
|
||||
"src/mbgl/style/conversion/filter.cpp",
|
||||
"src/mbgl/style/conversion/function.cpp",
|
||||
"src/mbgl/style/conversion/geojson.cpp",
|
||||
"src/mbgl/style/conversion/geojson_options.cpp",
|
||||
"src/mbgl/style/conversion/get_json_type.cpp",
|
||||
"src/mbgl/style/conversion/layer.cpp",
|
||||
"src/mbgl/style/conversion/light.cpp",
|
||||
"src/mbgl/style/conversion/position.cpp",
|
||||
"src/mbgl/style/conversion/property_value.cpp",
|
||||
"src/mbgl/style/conversion/source.cpp",
|
||||
"src/mbgl/style/conversion/tileset.cpp",
|
||||
"src/mbgl/style/conversion/transition_options.cpp",
|
||||
"src/mbgl/style/custom_tile_loader.cpp",
|
||||
"src/mbgl/style/expression/assertion.cpp",
|
||||
"src/mbgl/style/expression/at.cpp",
|
||||
"src/mbgl/style/expression/boolean_operator.cpp",
|
||||
"src/mbgl/style/expression/case.cpp",
|
||||
"src/mbgl/style/expression/check_subtype.cpp",
|
||||
"src/mbgl/style/expression/coalesce.cpp",
|
||||
"src/mbgl/style/expression/coercion.cpp",
|
||||
"src/mbgl/style/expression/collator.cpp",
|
||||
"src/mbgl/style/expression/collator_expression.cpp",
|
||||
"src/mbgl/style/expression/comparison.cpp",
|
||||
"src/mbgl/style/expression/compound_expression.cpp",
|
||||
"src/mbgl/style/expression/dsl.cpp",
|
||||
"src/mbgl/style/expression/expression.cpp",
|
||||
"src/mbgl/style/expression/find_zoom_curve.cpp",
|
||||
"src/mbgl/style/expression/format_expression.cpp",
|
||||
"src/mbgl/style/expression/formatted.cpp",
|
||||
"src/mbgl/style/expression/get_covering_stops.cpp",
|
||||
"src/mbgl/style/expression/image.cpp",
|
||||
"src/mbgl/style/expression/image_expression.cpp",
|
||||
"src/mbgl/style/expression/interpolate.cpp",
|
||||
"src/mbgl/style/expression/is_constant.cpp",
|
||||
"src/mbgl/style/expression/is_expression.cpp",
|
||||
"src/mbgl/style/expression/length.cpp",
|
||||
"src/mbgl/style/expression/let.cpp",
|
||||
"src/mbgl/style/expression/literal.cpp",
|
||||
"src/mbgl/style/expression/match.cpp",
|
||||
"src/mbgl/style/expression/number_format.cpp",
|
||||
"src/mbgl/style/expression/parsing_context.cpp",
|
||||
"src/mbgl/style/expression/step.cpp",
|
||||
"src/mbgl/style/expression/util.cpp",
|
||||
"src/mbgl/style/expression/value.cpp",
|
||||
"src/mbgl/style/expression/within.cpp",
|
||||
"src/mbgl/style/filter.cpp",
|
||||
"src/mbgl/style/image.cpp",
|
||||
"src/mbgl/style/image_impl.cpp",
|
||||
"src/mbgl/style/layer.cpp",
|
||||
"src/mbgl/style/layer_impl.cpp",
|
||||
"src/mbgl/style/layers/background_layer.cpp",
|
||||
"src/mbgl/style/layers/background_layer_impl.cpp",
|
||||
"src/mbgl/style/layers/background_layer_properties.cpp",
|
||||
"src/mbgl/style/layers/circle_layer.cpp",
|
||||
"src/mbgl/style/layers/circle_layer_impl.cpp",
|
||||
"src/mbgl/style/layers/circle_layer_properties.cpp",
|
||||
"src/mbgl/style/layers/fill_extrusion_layer.cpp",
|
||||
"src/mbgl/style/layers/fill_extrusion_layer_impl.cpp",
|
||||
"src/mbgl/style/layers/fill_extrusion_layer_properties.cpp",
|
||||
"src/mbgl/style/layers/fill_layer.cpp",
|
||||
"src/mbgl/style/layers/fill_layer_impl.cpp",
|
||||
"src/mbgl/style/layers/fill_layer_properties.cpp",
|
||||
"src/mbgl/style/layers/heatmap_layer.cpp",
|
||||
"src/mbgl/style/layers/heatmap_layer_impl.cpp",
|
||||
"src/mbgl/style/layers/heatmap_layer_properties.cpp",
|
||||
"src/mbgl/style/layers/hillshade_layer.cpp",
|
||||
"src/mbgl/style/layers/hillshade_layer_impl.cpp",
|
||||
"src/mbgl/style/layers/hillshade_layer_properties.cpp",
|
||||
"src/mbgl/style/layers/line_layer.cpp",
|
||||
"src/mbgl/style/layers/line_layer_impl.cpp",
|
||||
"src/mbgl/style/layers/line_layer_properties.cpp",
|
||||
"src/mbgl/style/layers/raster_layer.cpp",
|
||||
"src/mbgl/style/layers/raster_layer_impl.cpp",
|
||||
"src/mbgl/style/layers/raster_layer_properties.cpp",
|
||||
"src/mbgl/style/layers/symbol_layer.cpp",
|
||||
"src/mbgl/style/layers/symbol_layer_impl.cpp",
|
||||
"src/mbgl/style/layers/symbol_layer_properties.cpp",
|
||||
"src/mbgl/style/light.cpp",
|
||||
"src/mbgl/style/light_impl.cpp",
|
||||
"src/mbgl/style/parser.cpp",
|
||||
"src/mbgl/style/property_expression.cpp",
|
||||
"src/mbgl/style/source.cpp",
|
||||
"src/mbgl/style/source_impl.cpp",
|
||||
"src/mbgl/style/sources/custom_geometry_source.cpp",
|
||||
"src/mbgl/style/sources/custom_geometry_source_impl.cpp",
|
||||
"src/mbgl/style/sources/geojson_source.cpp",
|
||||
"src/mbgl/style/sources/geojson_source_impl.cpp",
|
||||
"src/mbgl/style/sources/image_source.cpp",
|
||||
"src/mbgl/style/sources/image_source_impl.cpp",
|
||||
"src/mbgl/style/sources/raster_dem_source.cpp",
|
||||
"src/mbgl/style/sources/raster_source.cpp",
|
||||
"src/mbgl/style/sources/raster_source_impl.cpp",
|
||||
"src/mbgl/style/sources/vector_source.cpp",
|
||||
"src/mbgl/style/sources/vector_source_impl.cpp",
|
||||
"src/mbgl/style/style.cpp",
|
||||
"src/mbgl/style/style_impl.cpp",
|
||||
"src/mbgl/style/types.cpp",
|
||||
"src/mbgl/text/check_max_angle.cpp",
|
||||
"src/mbgl/text/collision_feature.cpp",
|
||||
"src/mbgl/text/collision_index.cpp",
|
||||
"src/mbgl/text/cross_tile_symbol_index.cpp",
|
||||
"src/mbgl/text/get_anchors.cpp",
|
||||
"src/mbgl/text/glyph.cpp",
|
||||
"src/mbgl/text/glyph_atlas.cpp",
|
||||
"src/mbgl/text/glyph_manager.cpp",
|
||||
"src/mbgl/text/glyph_pbf.cpp",
|
||||
"src/mbgl/text/language_tag.cpp",
|
||||
"src/mbgl/text/placement.cpp",
|
||||
"src/mbgl/text/quads.cpp",
|
||||
"src/mbgl/text/shaping.cpp",
|
||||
"src/mbgl/text/tagged_string.cpp",
|
||||
"src/mbgl/tile/custom_geometry_tile.cpp",
|
||||
"src/mbgl/tile/geojson_tile.cpp",
|
||||
"src/mbgl/tile/geometry_tile.cpp",
|
||||
"src/mbgl/tile/geometry_tile_data.cpp",
|
||||
"src/mbgl/tile/geometry_tile_worker.cpp",
|
||||
"src/mbgl/tile/raster_dem_tile.cpp",
|
||||
"src/mbgl/tile/raster_dem_tile_worker.cpp",
|
||||
"src/mbgl/tile/raster_tile.cpp",
|
||||
"src/mbgl/tile/raster_tile_worker.cpp",
|
||||
"src/mbgl/tile/tile.cpp",
|
||||
"src/mbgl/tile/tile_cache.cpp",
|
||||
"src/mbgl/tile/tile_id_hash.cpp",
|
||||
"src/mbgl/tile/tile_id_io.cpp",
|
||||
"src/mbgl/tile/vector_tile.cpp",
|
||||
"src/mbgl/tile/vector_tile_data.cpp",
|
||||
"src/mbgl/util/chrono.cpp",
|
||||
"src/mbgl/util/color.cpp",
|
||||
"src/mbgl/util/constants.cpp",
|
||||
"src/mbgl/util/convert.cpp",
|
||||
"src/mbgl/util/dtoa.cpp",
|
||||
"src/mbgl/util/event.cpp",
|
||||
"src/mbgl/util/font_stack.cpp",
|
||||
"src/mbgl/util/geo.cpp",
|
||||
"src/mbgl/util/geojson_impl.cpp",
|
||||
"src/mbgl/util/grid_index.cpp",
|
||||
"src/mbgl/util/http_header.cpp",
|
||||
"src/mbgl/util/http_timeout.cpp",
|
||||
"src/mbgl/util/i18n.cpp",
|
||||
"src/mbgl/util/id.cpp",
|
||||
"src/mbgl/util/interpolate.cpp",
|
||||
"src/mbgl/util/intersection_tests.cpp",
|
||||
"src/mbgl/util/io.cpp",
|
||||
"src/mbgl/util/logging.cpp",
|
||||
"src/mbgl/util/mapbox.cpp",
|
||||
"src/mbgl/util/mat2.cpp",
|
||||
"src/mbgl/util/mat3.cpp",
|
||||
"src/mbgl/util/mat4.cpp",
|
||||
"src/mbgl/util/premultiply.cpp",
|
||||
"src/mbgl/util/rapidjson.cpp",
|
||||
"src/mbgl/util/stopwatch.cpp",
|
||||
"src/mbgl/util/string.cpp",
|
||||
"src/mbgl/util/thread.cpp",
|
||||
"src/mbgl/util/thread_pool.cpp",
|
||||
"src/mbgl/util/tile_cover.cpp",
|
||||
"src/mbgl/util/tile_cover_impl.cpp",
|
||||
"src/mbgl/util/tiny_sdf.cpp",
|
||||
"src/mbgl/util/url.cpp",
|
||||
"src/mbgl/util/version.cpp",
|
||||
"src/mbgl/util/work_request.cpp",
|
||||
"src/parsedate/parsedate.cpp"
|
||||
],
|
||||
"public_headers": {
|
||||
"mbgl/actor/actor.hpp": "include/mbgl/actor/actor.hpp",
|
||||
"mbgl/actor/actor_ref.hpp": "include/mbgl/actor/actor_ref.hpp",
|
||||
"mbgl/actor/aspiring_actor.hpp": "include/mbgl/actor/aspiring_actor.hpp",
|
||||
"mbgl/actor/established_actor.hpp": "include/mbgl/actor/established_actor.hpp",
|
||||
"mbgl/actor/mailbox.hpp": "include/mbgl/actor/mailbox.hpp",
|
||||
"mbgl/actor/message.hpp": "include/mbgl/actor/message.hpp",
|
||||
"mbgl/actor/scheduler.hpp": "include/mbgl/actor/scheduler.hpp",
|
||||
"mbgl/annotation/annotation.hpp": "include/mbgl/annotation/annotation.hpp",
|
||||
"mbgl/gfx/backend.hpp": "include/mbgl/gfx/backend.hpp",
|
||||
"mbgl/gfx/backend_scope.hpp": "include/mbgl/gfx/backend_scope.hpp",
|
||||
"mbgl/gfx/renderable.hpp": "include/mbgl/gfx/renderable.hpp",
|
||||
"mbgl/gfx/renderer_backend.hpp": "include/mbgl/gfx/renderer_backend.hpp",
|
||||
"mbgl/gfx/rendering_stats.hpp": "include/mbgl/gfx/rendering_stats.hpp",
|
||||
"mbgl/gl/custom_layer.hpp": "include/mbgl/gl/custom_layer.hpp",
|
||||
"mbgl/gl/custom_layer_factory.hpp": "include/mbgl/gl/custom_layer_factory.hpp",
|
||||
"mbgl/gl/renderable_resource.hpp": "include/mbgl/gl/renderable_resource.hpp",
|
||||
"mbgl/gl/renderer_backend.hpp": "include/mbgl/gl/renderer_backend.hpp",
|
||||
"mbgl/i18n/collator.hpp": "include/mbgl/i18n/collator.hpp",
|
||||
"mbgl/i18n/number_format.hpp": "include/mbgl/i18n/number_format.hpp",
|
||||
"mbgl/layermanager/background_layer_factory.hpp": "include/mbgl/layermanager/background_layer_factory.hpp",
|
||||
"mbgl/layermanager/circle_layer_factory.hpp": "include/mbgl/layermanager/circle_layer_factory.hpp",
|
||||
"mbgl/layermanager/fill_extrusion_layer_factory.hpp": "include/mbgl/layermanager/fill_extrusion_layer_factory.hpp",
|
||||
"mbgl/layermanager/fill_layer_factory.hpp": "include/mbgl/layermanager/fill_layer_factory.hpp",
|
||||
"mbgl/layermanager/heatmap_layer_factory.hpp": "include/mbgl/layermanager/heatmap_layer_factory.hpp",
|
||||
"mbgl/layermanager/hillshade_layer_factory.hpp": "include/mbgl/layermanager/hillshade_layer_factory.hpp",
|
||||
"mbgl/layermanager/layer_factory.hpp": "include/mbgl/layermanager/layer_factory.hpp",
|
||||
"mbgl/layermanager/layer_manager.hpp": "include/mbgl/layermanager/layer_manager.hpp",
|
||||
"mbgl/layermanager/line_layer_factory.hpp": "include/mbgl/layermanager/line_layer_factory.hpp",
|
||||
"mbgl/layermanager/raster_layer_factory.hpp": "include/mbgl/layermanager/raster_layer_factory.hpp",
|
||||
"mbgl/layermanager/symbol_layer_factory.hpp": "include/mbgl/layermanager/symbol_layer_factory.hpp",
|
||||
"mbgl/map/bound_options.hpp": "include/mbgl/map/bound_options.hpp",
|
||||
"mbgl/map/camera.hpp": "include/mbgl/map/camera.hpp",
|
||||
"mbgl/map/change.hpp": "include/mbgl/map/change.hpp",
|
||||
"mbgl/map/map.hpp": "include/mbgl/map/map.hpp",
|
||||
"mbgl/map/map_observer.hpp": "include/mbgl/map/map_observer.hpp",
|
||||
"mbgl/map/map_options.hpp": "include/mbgl/map/map_options.hpp",
|
||||
"mbgl/map/mode.hpp": "include/mbgl/map/mode.hpp",
|
||||
"mbgl/map/projection_mode.hpp": "include/mbgl/map/projection_mode.hpp",
|
||||
"mbgl/math/clamp.hpp": "include/mbgl/math/clamp.hpp",
|
||||
"mbgl/math/log2.hpp": "include/mbgl/math/log2.hpp",
|
||||
"mbgl/math/minmax.hpp": "include/mbgl/math/minmax.hpp",
|
||||
"mbgl/math/wrap.hpp": "include/mbgl/math/wrap.hpp",
|
||||
"mbgl/platform/gl_functions.hpp": "include/mbgl/platform/gl_functions.hpp",
|
||||
"mbgl/platform/settings.hpp": "include/mbgl/platform/settings.hpp",
|
||||
"mbgl/platform/thread.hpp": "include/mbgl/platform/thread.hpp",
|
||||
"mbgl/renderer/query.hpp": "include/mbgl/renderer/query.hpp",
|
||||
"mbgl/renderer/renderer.hpp": "include/mbgl/renderer/renderer.hpp",
|
||||
"mbgl/renderer/renderer_frontend.hpp": "include/mbgl/renderer/renderer_frontend.hpp",
|
||||
"mbgl/renderer/renderer_observer.hpp": "include/mbgl/renderer/renderer_observer.hpp",
|
||||
"mbgl/renderer/renderer_state.hpp": "include/mbgl/renderer/renderer_state.hpp",
|
||||
"mbgl/storage/database_file_source.hpp": "include/mbgl/storage/database_file_source.hpp",
|
||||
"mbgl/storage/file_source.hpp": "include/mbgl/storage/file_source.hpp",
|
||||
"mbgl/storage/file_source_manager.hpp": "include/mbgl/storage/file_source_manager.hpp",
|
||||
"mbgl/storage/network_status.hpp": "include/mbgl/storage/network_status.hpp",
|
||||
"mbgl/storage/offline.hpp": "include/mbgl/storage/offline.hpp",
|
||||
"mbgl/storage/online_file_source.hpp": "include/mbgl/storage/online_file_source.hpp",
|
||||
"mbgl/storage/resource.hpp": "include/mbgl/storage/resource.hpp",
|
||||
"mbgl/storage/resource_options.hpp": "include/mbgl/storage/resource_options.hpp",
|
||||
"mbgl/storage/resource_transform.hpp": "include/mbgl/storage/resource_transform.hpp",
|
||||
"mbgl/storage/response.hpp": "include/mbgl/storage/response.hpp",
|
||||
"mbgl/style/color_ramp_property_value.hpp": "include/mbgl/style/color_ramp_property_value.hpp",
|
||||
"mbgl/style/conversion.hpp": "include/mbgl/style/conversion.hpp",
|
||||
"mbgl/style/conversion/color_ramp_property_value.hpp": "include/mbgl/style/conversion/color_ramp_property_value.hpp",
|
||||
"mbgl/style/conversion/constant.hpp": "include/mbgl/style/conversion/constant.hpp",
|
||||
"mbgl/style/conversion/coordinate.hpp": "include/mbgl/style/conversion/coordinate.hpp",
|
||||
"mbgl/style/conversion/custom_geometry_source_options.hpp": "include/mbgl/style/conversion/custom_geometry_source_options.hpp",
|
||||
"mbgl/style/conversion/filter.hpp": "include/mbgl/style/conversion/filter.hpp",
|
||||
"mbgl/style/conversion/function.hpp": "include/mbgl/style/conversion/function.hpp",
|
||||
"mbgl/style/conversion/geojson.hpp": "include/mbgl/style/conversion/geojson.hpp",
|
||||
"mbgl/style/conversion/geojson_options.hpp": "include/mbgl/style/conversion/geojson_options.hpp",
|
||||
"mbgl/style/conversion/get_json_type.hpp": "include/mbgl/style/conversion/get_json_type.hpp",
|
||||
"mbgl/style/conversion/layer.hpp": "include/mbgl/style/conversion/layer.hpp",
|
||||
"mbgl/style/conversion/light.hpp": "include/mbgl/style/conversion/light.hpp",
|
||||
"mbgl/style/conversion/position.hpp": "include/mbgl/style/conversion/position.hpp",
|
||||
"mbgl/style/conversion/property_value.hpp": "include/mbgl/style/conversion/property_value.hpp",
|
||||
"mbgl/style/conversion/source.hpp": "include/mbgl/style/conversion/source.hpp",
|
||||
"mbgl/style/conversion/tileset.hpp": "include/mbgl/style/conversion/tileset.hpp",
|
||||
"mbgl/style/conversion/transition_options.hpp": "include/mbgl/style/conversion/transition_options.hpp",
|
||||
"mbgl/style/conversion_impl.hpp": "include/mbgl/style/conversion_impl.hpp",
|
||||
"mbgl/style/expression/assertion.hpp": "include/mbgl/style/expression/assertion.hpp",
|
||||
"mbgl/style/expression/at.hpp": "include/mbgl/style/expression/at.hpp",
|
||||
"mbgl/style/expression/boolean_operator.hpp": "include/mbgl/style/expression/boolean_operator.hpp",
|
||||
"mbgl/style/expression/case.hpp": "include/mbgl/style/expression/case.hpp",
|
||||
"mbgl/style/expression/check_subtype.hpp": "include/mbgl/style/expression/check_subtype.hpp",
|
||||
"mbgl/style/expression/coalesce.hpp": "include/mbgl/style/expression/coalesce.hpp",
|
||||
"mbgl/style/expression/coercion.hpp": "include/mbgl/style/expression/coercion.hpp",
|
||||
"mbgl/style/expression/collator.hpp": "include/mbgl/style/expression/collator.hpp",
|
||||
"mbgl/style/expression/collator_expression.hpp": "include/mbgl/style/expression/collator_expression.hpp",
|
||||
"mbgl/style/expression/comparison.hpp": "include/mbgl/style/expression/comparison.hpp",
|
||||
"mbgl/style/expression/compound_expression.hpp": "include/mbgl/style/expression/compound_expression.hpp",
|
||||
"mbgl/style/expression/dsl.hpp": "include/mbgl/style/expression/dsl.hpp",
|
||||
"mbgl/style/expression/error.hpp": "include/mbgl/style/expression/error.hpp",
|
||||
"mbgl/style/expression/expression.hpp": "include/mbgl/style/expression/expression.hpp",
|
||||
"mbgl/style/expression/find_zoom_curve.hpp": "include/mbgl/style/expression/find_zoom_curve.hpp",
|
||||
"mbgl/style/expression/format_expression.hpp": "include/mbgl/style/expression/format_expression.hpp",
|
||||
"mbgl/style/expression/format_section_override.hpp": "include/mbgl/style/expression/format_section_override.hpp",
|
||||
"mbgl/style/expression/formatted.hpp": "include/mbgl/style/expression/formatted.hpp",
|
||||
"mbgl/style/expression/get_covering_stops.hpp": "include/mbgl/style/expression/get_covering_stops.hpp",
|
||||
"mbgl/style/expression/image.hpp": "include/mbgl/style/expression/image.hpp",
|
||||
"mbgl/style/expression/image_expression.hpp": "include/mbgl/style/expression/image_expression.hpp",
|
||||
"mbgl/style/expression/interpolate.hpp": "include/mbgl/style/expression/interpolate.hpp",
|
||||
"mbgl/style/expression/interpolator.hpp": "include/mbgl/style/expression/interpolator.hpp",
|
||||
"mbgl/style/expression/is_constant.hpp": "include/mbgl/style/expression/is_constant.hpp",
|
||||
"mbgl/style/expression/is_expression.hpp": "include/mbgl/style/expression/is_expression.hpp",
|
||||
"mbgl/style/expression/length.hpp": "include/mbgl/style/expression/length.hpp",
|
||||
"mbgl/style/expression/let.hpp": "include/mbgl/style/expression/let.hpp",
|
||||
"mbgl/style/expression/literal.hpp": "include/mbgl/style/expression/literal.hpp",
|
||||
"mbgl/style/expression/match.hpp": "include/mbgl/style/expression/match.hpp",
|
||||
"mbgl/style/expression/number_format.hpp": "include/mbgl/style/expression/number_format.hpp",
|
||||
"mbgl/style/expression/parsing_context.hpp": "include/mbgl/style/expression/parsing_context.hpp",
|
||||
"mbgl/style/expression/step.hpp": "include/mbgl/style/expression/step.hpp",
|
||||
"mbgl/style/expression/type.hpp": "include/mbgl/style/expression/type.hpp",
|
||||
"mbgl/style/expression/value.hpp": "include/mbgl/style/expression/value.hpp",
|
||||
"mbgl/style/expression/within.hpp": "include/mbgl/style/expression/within.hpp",
|
||||
"mbgl/style/filter.hpp": "include/mbgl/style/filter.hpp",
|
||||
"mbgl/style/image.hpp": "include/mbgl/style/image.hpp",
|
||||
"mbgl/style/layer.hpp": "include/mbgl/style/layer.hpp",
|
||||
"mbgl/style/layer_properties.hpp": "include/mbgl/style/layer_properties.hpp",
|
||||
"mbgl/style/layers/background_layer.hpp": "include/mbgl/style/layers/background_layer.hpp",
|
||||
"mbgl/style/layers/circle_layer.hpp": "include/mbgl/style/layers/circle_layer.hpp",
|
||||
"mbgl/style/layers/fill_extrusion_layer.hpp": "include/mbgl/style/layers/fill_extrusion_layer.hpp",
|
||||
"mbgl/style/layers/fill_layer.hpp": "include/mbgl/style/layers/fill_layer.hpp",
|
||||
"mbgl/style/layers/heatmap_layer.hpp": "include/mbgl/style/layers/heatmap_layer.hpp",
|
||||
"mbgl/style/layers/hillshade_layer.hpp": "include/mbgl/style/layers/hillshade_layer.hpp",
|
||||
"mbgl/style/layers/line_layer.hpp": "include/mbgl/style/layers/line_layer.hpp",
|
||||
"mbgl/style/layers/raster_layer.hpp": "include/mbgl/style/layers/raster_layer.hpp",
|
||||
"mbgl/style/layers/symbol_layer.hpp": "include/mbgl/style/layers/symbol_layer.hpp",
|
||||
"mbgl/style/light.hpp": "include/mbgl/style/light.hpp",
|
||||
"mbgl/style/position.hpp": "include/mbgl/style/position.hpp",
|
||||
"mbgl/style/property_expression.hpp": "include/mbgl/style/property_expression.hpp",
|
||||
"mbgl/style/property_value.hpp": "include/mbgl/style/property_value.hpp",
|
||||
"mbgl/style/source.hpp": "include/mbgl/style/source.hpp",
|
||||
"mbgl/style/sources/custom_geometry_source.hpp": "include/mbgl/style/sources/custom_geometry_source.hpp",
|
||||
"mbgl/style/sources/geojson_source.hpp": "include/mbgl/style/sources/geojson_source.hpp",
|
||||
"mbgl/style/sources/image_source.hpp": "include/mbgl/style/sources/image_source.hpp",
|
||||
"mbgl/style/sources/raster_dem_source.hpp": "include/mbgl/style/sources/raster_dem_source.hpp",
|
||||
"mbgl/style/sources/raster_source.hpp": "include/mbgl/style/sources/raster_source.hpp",
|
||||
"mbgl/style/sources/vector_source.hpp": "include/mbgl/style/sources/vector_source.hpp",
|
||||
"mbgl/style/style.hpp": "include/mbgl/style/style.hpp",
|
||||
"mbgl/style/style_property.hpp": "include/mbgl/style/style_property.hpp",
|
||||
"mbgl/style/transition_options.hpp": "include/mbgl/style/transition_options.hpp",
|
||||
"mbgl/style/types.hpp": "include/mbgl/style/types.hpp",
|
||||
"mbgl/style/undefined.hpp": "include/mbgl/style/undefined.hpp",
|
||||
"mbgl/tile/tile_id.hpp": "include/mbgl/tile/tile_id.hpp",
|
||||
"mbgl/tile/tile_necessity.hpp": "include/mbgl/tile/tile_necessity.hpp",
|
||||
"mbgl/util/async_request.hpp": "include/mbgl/util/async_request.hpp",
|
||||
"mbgl/util/async_task.hpp": "include/mbgl/util/async_task.hpp",
|
||||
"mbgl/util/bitmask_operations.hpp": "include/mbgl/util/bitmask_operations.hpp",
|
||||
"mbgl/util/char_array_buffer.hpp": "include/mbgl/util/char_array_buffer.hpp",
|
||||
"mbgl/util/chrono.hpp": "include/mbgl/util/chrono.hpp",
|
||||
"mbgl/util/color.hpp": "include/mbgl/util/color.hpp",
|
||||
"mbgl/util/compression.hpp": "include/mbgl/util/compression.hpp",
|
||||
"mbgl/util/constants.hpp": "include/mbgl/util/constants.hpp",
|
||||
"mbgl/util/convert.hpp": "include/mbgl/util/convert.hpp",
|
||||
"mbgl/util/default_styles.hpp": "include/mbgl/util/default_styles.hpp",
|
||||
"mbgl/util/enum.hpp": "include/mbgl/util/enum.hpp",
|
||||
"mbgl/util/event.hpp": "include/mbgl/util/event.hpp",
|
||||
"mbgl/util/exception.hpp": "include/mbgl/util/exception.hpp",
|
||||
"mbgl/util/expected.hpp": "include/mbgl/util/expected.hpp",
|
||||
"mbgl/util/feature.hpp": "include/mbgl/util/feature.hpp",
|
||||
"mbgl/util/font_stack.hpp": "include/mbgl/util/font_stack.hpp",
|
||||
"mbgl/util/geo.hpp": "include/mbgl/util/geo.hpp",
|
||||
"mbgl/util/geojson.hpp": "include/mbgl/util/geojson.hpp",
|
||||
"mbgl/util/geometry.hpp": "include/mbgl/util/geometry.hpp",
|
||||
"mbgl/util/ignore.hpp": "include/mbgl/util/ignore.hpp",
|
||||
"mbgl/util/image.hpp": "include/mbgl/util/image.hpp",
|
||||
"mbgl/util/immutable.hpp": "include/mbgl/util/immutable.hpp",
|
||||
"mbgl/util/indexed_tuple.hpp": "include/mbgl/util/indexed_tuple.hpp",
|
||||
"mbgl/util/interpolate.hpp": "include/mbgl/util/interpolate.hpp",
|
||||
"mbgl/util/logging.hpp": "include/mbgl/util/logging.hpp",
|
||||
"mbgl/util/monotonic_timer.hpp": "include/mbgl/util/monotonic_timer.hpp",
|
||||
"mbgl/util/noncopyable.hpp": "include/mbgl/util/noncopyable.hpp",
|
||||
"mbgl/util/optional.hpp": "include/mbgl/util/optional.hpp",
|
||||
"mbgl/util/platform.hpp": "include/mbgl/util/platform.hpp",
|
||||
"mbgl/util/premultiply.hpp": "include/mbgl/util/premultiply.hpp",
|
||||
"mbgl/util/projection.hpp": "include/mbgl/util/projection.hpp",
|
||||
"mbgl/util/range.hpp": "include/mbgl/util/range.hpp",
|
||||
"mbgl/util/run_loop.hpp": "include/mbgl/util/run_loop.hpp",
|
||||
"mbgl/util/size.hpp": "include/mbgl/util/size.hpp",
|
||||
"mbgl/util/string.hpp": "include/mbgl/util/string.hpp",
|
||||
"mbgl/util/thread.hpp": "include/mbgl/util/thread.hpp",
|
||||
"mbgl/util/tileset.hpp": "include/mbgl/util/tileset.hpp",
|
||||
"mbgl/util/timer.hpp": "include/mbgl/util/timer.hpp",
|
||||
"mbgl/util/traits.hpp": "include/mbgl/util/traits.hpp",
|
||||
"mbgl/util/type_list.hpp": "include/mbgl/util/type_list.hpp",
|
||||
"mbgl/util/unitbezier.hpp": "include/mbgl/util/unitbezier.hpp",
|
||||
"mbgl/util/util.hpp": "include/mbgl/util/util.hpp",
|
||||
"mbgl/util/variant.hpp": "include/mbgl/util/variant.hpp",
|
||||
"mbgl/util/work_request.hpp": "include/mbgl/util/work_request.hpp",
|
||||
"mbgl/util/work_task.hpp": "include/mbgl/util/work_task.hpp",
|
||||
"mbgl/util/work_task_impl.hpp": "include/mbgl/util/work_task_impl.hpp"
|
||||
},
|
||||
"private_headers": {
|
||||
"csscolorparser/csscolorparser.hpp": "src/csscolorparser/csscolorparser.hpp",
|
||||
"mbgl/algorithm/update_renderables.hpp": "src/mbgl/algorithm/update_renderables.hpp",
|
||||
"mbgl/algorithm/update_tile_masks.hpp": "src/mbgl/algorithm/update_tile_masks.hpp",
|
||||
"mbgl/annotation/annotation_manager.hpp": "src/mbgl/annotation/annotation_manager.hpp",
|
||||
"mbgl/annotation/annotation_source.hpp": "src/mbgl/annotation/annotation_source.hpp",
|
||||
"mbgl/annotation/annotation_tile.hpp": "src/mbgl/annotation/annotation_tile.hpp",
|
||||
"mbgl/annotation/fill_annotation_impl.hpp": "src/mbgl/annotation/fill_annotation_impl.hpp",
|
||||
"mbgl/annotation/line_annotation_impl.hpp": "src/mbgl/annotation/line_annotation_impl.hpp",
|
||||
"mbgl/annotation/render_annotation_source.hpp": "src/mbgl/annotation/render_annotation_source.hpp",
|
||||
"mbgl/annotation/shape_annotation_impl.hpp": "src/mbgl/annotation/shape_annotation_impl.hpp",
|
||||
"mbgl/annotation/symbol_annotation_impl.hpp": "src/mbgl/annotation/symbol_annotation_impl.hpp",
|
||||
"mbgl/geometry/anchor.hpp": "src/mbgl/geometry/anchor.hpp",
|
||||
"mbgl/geometry/debug_font_data.hpp": "src/mbgl/geometry/debug_font_data.hpp",
|
||||
"mbgl/geometry/dem_data.hpp": "src/mbgl/geometry/dem_data.hpp",
|
||||
"mbgl/geometry/feature_index.hpp": "src/mbgl/geometry/feature_index.hpp",
|
||||
"mbgl/geometry/line_atlas.hpp": "src/mbgl/geometry/line_atlas.hpp",
|
||||
"mbgl/gfx/attribute.hpp": "src/mbgl/gfx/attribute.hpp",
|
||||
"mbgl/gfx/color_mode.hpp": "src/mbgl/gfx/color_mode.hpp",
|
||||
"mbgl/gfx/command_encoder.hpp": "src/mbgl/gfx/command_encoder.hpp",
|
||||
"mbgl/gfx/context.hpp": "src/mbgl/gfx/context.hpp",
|
||||
"mbgl/gfx/cull_face_mode.hpp": "src/mbgl/gfx/cull_face_mode.hpp",
|
||||
"mbgl/gfx/debug_group.hpp": "src/mbgl/gfx/debug_group.hpp",
|
||||
"mbgl/gfx/depth_mode.hpp": "src/mbgl/gfx/depth_mode.hpp",
|
||||
"mbgl/gfx/draw_mode.hpp": "src/mbgl/gfx/draw_mode.hpp",
|
||||
"mbgl/gfx/draw_scope.hpp": "src/mbgl/gfx/draw_scope.hpp",
|
||||
"mbgl/gfx/index_buffer.hpp": "src/mbgl/gfx/index_buffer.hpp",
|
||||
"mbgl/gfx/index_vector.hpp": "src/mbgl/gfx/index_vector.hpp",
|
||||
"mbgl/gfx/offscreen_texture.hpp": "src/mbgl/gfx/offscreen_texture.hpp",
|
||||
"mbgl/gfx/program.hpp": "src/mbgl/gfx/program.hpp",
|
||||
"mbgl/gfx/render_pass.hpp": "src/mbgl/gfx/render_pass.hpp",
|
||||
"mbgl/gfx/renderbuffer.hpp": "src/mbgl/gfx/renderbuffer.hpp",
|
||||
"mbgl/gfx/stencil_mode.hpp": "src/mbgl/gfx/stencil_mode.hpp",
|
||||
"mbgl/gfx/texture.hpp": "src/mbgl/gfx/texture.hpp",
|
||||
"mbgl/gfx/types.hpp": "src/mbgl/gfx/types.hpp",
|
||||
"mbgl/gfx/uniform.hpp": "src/mbgl/gfx/uniform.hpp",
|
||||
"mbgl/gfx/upload_pass.hpp": "src/mbgl/gfx/upload_pass.hpp",
|
||||
"mbgl/gfx/vertex_buffer.hpp": "src/mbgl/gfx/vertex_buffer.hpp",
|
||||
"mbgl/gfx/vertex_vector.hpp": "src/mbgl/gfx/vertex_vector.hpp",
|
||||
"mbgl/gl/attribute.hpp": "src/mbgl/gl/attribute.hpp",
|
||||
"mbgl/gl/command_encoder.hpp": "src/mbgl/gl/command_encoder.hpp",
|
||||
"mbgl/gl/context.hpp": "src/mbgl/gl/context.hpp",
|
||||
"mbgl/gl/custom_layer_impl.hpp": "src/mbgl/gl/custom_layer_impl.hpp",
|
||||
"mbgl/gl/debugging_extension.hpp": "src/mbgl/gl/debugging_extension.hpp",
|
||||
"mbgl/gl/defines.hpp": "src/mbgl/gl/defines.hpp",
|
||||
"mbgl/gl/draw_scope_resource.hpp": "src/mbgl/gl/draw_scope_resource.hpp",
|
||||
"mbgl/gl/enum.hpp": "src/mbgl/gl/enum.hpp",
|
||||
"mbgl/gl/extension.hpp": "src/mbgl/gl/extension.hpp",
|
||||
"mbgl/gl/framebuffer.hpp": "src/mbgl/gl/framebuffer.hpp",
|
||||
"mbgl/gl/index_buffer_resource.hpp": "src/mbgl/gl/index_buffer_resource.hpp",
|
||||
"mbgl/gl/object.hpp": "src/mbgl/gl/object.hpp",
|
||||
"mbgl/gl/offscreen_texture.hpp": "src/mbgl/gl/offscreen_texture.hpp",
|
||||
"mbgl/gl/program.hpp": "src/mbgl/gl/program.hpp",
|
||||
"mbgl/gl/render_custom_layer.hpp": "src/mbgl/gl/render_custom_layer.hpp",
|
||||
"mbgl/gl/render_pass.hpp": "src/mbgl/gl/render_pass.hpp",
|
||||
"mbgl/gl/renderbuffer_resource.hpp": "src/mbgl/gl/renderbuffer_resource.hpp",
|
||||
"mbgl/gl/state.hpp": "src/mbgl/gl/state.hpp",
|
||||
"mbgl/gl/texture.hpp": "src/mbgl/gl/texture.hpp",
|
||||
"mbgl/gl/texture_resource.hpp": "src/mbgl/gl/texture_resource.hpp",
|
||||
"mbgl/gl/types.hpp": "src/mbgl/gl/types.hpp",
|
||||
"mbgl/gl/uniform.hpp": "src/mbgl/gl/uniform.hpp",
|
||||
"mbgl/gl/upload_pass.hpp": "src/mbgl/gl/upload_pass.hpp",
|
||||
"mbgl/gl/value.hpp": "src/mbgl/gl/value.hpp",
|
||||
"mbgl/gl/vertex_array.hpp": "src/mbgl/gl/vertex_array.hpp",
|
||||
"mbgl/gl/vertex_array_extension.hpp": "src/mbgl/gl/vertex_array_extension.hpp",
|
||||
"mbgl/gl/vertex_buffer_resource.hpp": "src/mbgl/gl/vertex_buffer_resource.hpp",
|
||||
"mbgl/layout/clip_lines.hpp": "src/mbgl/layout/clip_lines.hpp",
|
||||
"mbgl/layout/layout.hpp": "src/mbgl/layout/layout.hpp",
|
||||
"mbgl/layout/merge_lines.hpp": "src/mbgl/layout/merge_lines.hpp",
|
||||
"mbgl/layout/pattern_layout.hpp": "src/mbgl/layout/pattern_layout.hpp",
|
||||
"mbgl/layout/symbol_feature.hpp": "src/mbgl/layout/symbol_feature.hpp",
|
||||
"mbgl/layout/symbol_instance.hpp": "src/mbgl/layout/symbol_instance.hpp",
|
||||
"mbgl/layout/symbol_layout.hpp": "src/mbgl/layout/symbol_layout.hpp",
|
||||
"mbgl/layout/symbol_projection.hpp": "src/mbgl/layout/symbol_projection.hpp",
|
||||
"mbgl/map/map_impl.hpp": "src/mbgl/map/map_impl.hpp",
|
||||
"mbgl/map/transform.hpp": "src/mbgl/map/transform.hpp",
|
||||
"mbgl/map/transform_state.hpp": "src/mbgl/map/transform_state.hpp",
|
||||
"mbgl/map/zoom_history.hpp": "src/mbgl/map/zoom_history.hpp",
|
||||
"mbgl/programs/attributes.hpp": "src/mbgl/programs/attributes.hpp",
|
||||
"mbgl/programs/background_pattern_program.hpp": "src/mbgl/programs/background_pattern_program.hpp",
|
||||
"mbgl/programs/background_program.hpp": "src/mbgl/programs/background_program.hpp",
|
||||
"mbgl/programs/circle_program.hpp": "src/mbgl/programs/circle_program.hpp",
|
||||
"mbgl/programs/clipping_mask_program.hpp": "src/mbgl/programs/clipping_mask_program.hpp",
|
||||
"mbgl/programs/collision_box_program.hpp": "src/mbgl/programs/collision_box_program.hpp",
|
||||
"mbgl/programs/collision_circle_program.hpp": "src/mbgl/programs/collision_circle_program.hpp",
|
||||
"mbgl/programs/debug_program.hpp": "src/mbgl/programs/debug_program.hpp",
|
||||
"mbgl/programs/fill_extrusion_pattern_program.hpp": "src/mbgl/programs/fill_extrusion_pattern_program.hpp",
|
||||
"mbgl/programs/fill_extrusion_program.hpp": "src/mbgl/programs/fill_extrusion_program.hpp",
|
||||
"mbgl/programs/fill_outline_pattern_program.hpp": "src/mbgl/programs/fill_outline_pattern_program.hpp",
|
||||
"mbgl/programs/fill_outline_program.hpp": "src/mbgl/programs/fill_outline_program.hpp",
|
||||
"mbgl/programs/fill_pattern_program.hpp": "src/mbgl/programs/fill_pattern_program.hpp",
|
||||
"mbgl/programs/fill_program.hpp": "src/mbgl/programs/fill_program.hpp",
|
||||
"mbgl/programs/gl/preludes.hpp": "src/mbgl/programs/gl/preludes.hpp",
|
||||
"mbgl/programs/gl/shader_source.hpp": "src/mbgl/programs/gl/shader_source.hpp",
|
||||
"mbgl/programs/gl/shaders.hpp": "src/mbgl/programs/gl/shaders.hpp",
|
||||
"mbgl/programs/heatmap_program.hpp": "src/mbgl/programs/heatmap_program.hpp",
|
||||
"mbgl/programs/heatmap_texture_program.hpp": "src/mbgl/programs/heatmap_texture_program.hpp",
|
||||
"mbgl/programs/hillshade_prepare_program.hpp": "src/mbgl/programs/hillshade_prepare_program.hpp",
|
||||
"mbgl/programs/hillshade_program.hpp": "src/mbgl/programs/hillshade_program.hpp",
|
||||
"mbgl/programs/line_gradient_program.hpp": "src/mbgl/programs/line_gradient_program.hpp",
|
||||
"mbgl/programs/line_pattern_program.hpp": "src/mbgl/programs/line_pattern_program.hpp",
|
||||
"mbgl/programs/line_program.hpp": "src/mbgl/programs/line_program.hpp",
|
||||
"mbgl/programs/line_sdf_program.hpp": "src/mbgl/programs/line_sdf_program.hpp",
|
||||
"mbgl/programs/program.hpp": "src/mbgl/programs/program.hpp",
|
||||
"mbgl/programs/program_parameters.hpp": "src/mbgl/programs/program_parameters.hpp",
|
||||
"mbgl/programs/programs.hpp": "src/mbgl/programs/programs.hpp",
|
||||
"mbgl/programs/raster_program.hpp": "src/mbgl/programs/raster_program.hpp",
|
||||
"mbgl/programs/segment.hpp": "src/mbgl/programs/segment.hpp",
|
||||
"mbgl/programs/symbol_icon_program.hpp": "src/mbgl/programs/symbol_icon_program.hpp",
|
||||
"mbgl/programs/symbol_program.hpp": "src/mbgl/programs/symbol_program.hpp",
|
||||
"mbgl/programs/symbol_sdf_icon_program.hpp": "src/mbgl/programs/symbol_sdf_icon_program.hpp",
|
||||
"mbgl/programs/symbol_sdf_text_program.hpp": "src/mbgl/programs/symbol_sdf_text_program.hpp",
|
||||
"mbgl/programs/symbol_text_and_icon_program.hpp": "src/mbgl/programs/symbol_text_and_icon_program.hpp",
|
||||
"mbgl/programs/textures.hpp": "src/mbgl/programs/textures.hpp",
|
||||
"mbgl/programs/uniforms.hpp": "src/mbgl/programs/uniforms.hpp",
|
||||
"mbgl/renderer/bucket.hpp": "src/mbgl/renderer/bucket.hpp",
|
||||
"mbgl/renderer/bucket_parameters.hpp": "src/mbgl/renderer/bucket_parameters.hpp",
|
||||
"mbgl/renderer/buckets/circle_bucket.hpp": "src/mbgl/renderer/buckets/circle_bucket.hpp",
|
||||
"mbgl/renderer/buckets/debug_bucket.hpp": "src/mbgl/renderer/buckets/debug_bucket.hpp",
|
||||
"mbgl/renderer/buckets/fill_bucket.hpp": "src/mbgl/renderer/buckets/fill_bucket.hpp",
|
||||
"mbgl/renderer/buckets/fill_extrusion_bucket.hpp": "src/mbgl/renderer/buckets/fill_extrusion_bucket.hpp",
|
||||
"mbgl/renderer/buckets/heatmap_bucket.hpp": "src/mbgl/renderer/buckets/heatmap_bucket.hpp",
|
||||
"mbgl/renderer/buckets/hillshade_bucket.hpp": "src/mbgl/renderer/buckets/hillshade_bucket.hpp",
|
||||
"mbgl/renderer/buckets/line_bucket.hpp": "src/mbgl/renderer/buckets/line_bucket.hpp",
|
||||
"mbgl/renderer/buckets/raster_bucket.hpp": "src/mbgl/renderer/buckets/raster_bucket.hpp",
|
||||
"mbgl/renderer/buckets/symbol_bucket.hpp": "src/mbgl/renderer/buckets/symbol_bucket.hpp",
|
||||
"mbgl/renderer/cross_faded_property_evaluator.hpp": "src/mbgl/renderer/cross_faded_property_evaluator.hpp",
|
||||
"mbgl/renderer/data_driven_property_evaluator.hpp": "src/mbgl/renderer/data_driven_property_evaluator.hpp",
|
||||
"mbgl/renderer/group_by_layout.hpp": "src/mbgl/renderer/group_by_layout.hpp",
|
||||
"mbgl/renderer/image_atlas.hpp": "src/mbgl/renderer/image_atlas.hpp",
|
||||
"mbgl/renderer/image_manager.hpp": "src/mbgl/renderer/image_manager.hpp",
|
||||
"mbgl/renderer/image_manager_observer.hpp": "src/mbgl/renderer/image_manager_observer.hpp",
|
||||
"mbgl/renderer/layers/render_background_layer.hpp": "src/mbgl/renderer/layers/render_background_layer.hpp",
|
||||
"mbgl/renderer/layers/render_circle_layer.hpp": "src/mbgl/renderer/layers/render_circle_layer.hpp",
|
||||
"mbgl/renderer/layers/render_fill_extrusion_layer.hpp": "src/mbgl/renderer/layers/render_fill_extrusion_layer.hpp",
|
||||
"mbgl/renderer/layers/render_fill_layer.hpp": "src/mbgl/renderer/layers/render_fill_layer.hpp",
|
||||
"mbgl/renderer/layers/render_heatmap_layer.hpp": "src/mbgl/renderer/layers/render_heatmap_layer.hpp",
|
||||
"mbgl/renderer/layers/render_hillshade_layer.hpp": "src/mbgl/renderer/layers/render_hillshade_layer.hpp",
|
||||
"mbgl/renderer/layers/render_line_layer.hpp": "src/mbgl/renderer/layers/render_line_layer.hpp",
|
||||
"mbgl/renderer/layers/render_raster_layer.hpp": "src/mbgl/renderer/layers/render_raster_layer.hpp",
|
||||
"mbgl/renderer/layers/render_symbol_layer.hpp": "src/mbgl/renderer/layers/render_symbol_layer.hpp",
|
||||
"mbgl/renderer/paint_parameters.hpp": "src/mbgl/renderer/paint_parameters.hpp",
|
||||
"mbgl/renderer/paint_property_binder.hpp": "src/mbgl/renderer/paint_property_binder.hpp",
|
||||
"mbgl/renderer/paint_property_statistics.hpp": "src/mbgl/renderer/paint_property_statistics.hpp",
|
||||
"mbgl/renderer/pattern_atlas.hpp": "src/mbgl/renderer/pattern_atlas.hpp",
|
||||
"mbgl/renderer/possibly_evaluated_property_value.hpp": "src/mbgl/renderer/possibly_evaluated_property_value.hpp",
|
||||
"mbgl/renderer/property_evaluation_parameters.hpp": "src/mbgl/renderer/property_evaluation_parameters.hpp",
|
||||
"mbgl/renderer/property_evaluator.hpp": "src/mbgl/renderer/property_evaluator.hpp",
|
||||
"mbgl/renderer/render_layer.hpp": "src/mbgl/renderer/render_layer.hpp",
|
||||
"mbgl/renderer/render_light.hpp": "src/mbgl/renderer/render_light.hpp",
|
||||
"mbgl/renderer/render_orchestrator.hpp": "src/mbgl/renderer/render_orchestrator.hpp",
|
||||
"mbgl/renderer/render_pass.hpp": "src/mbgl/renderer/render_pass.hpp",
|
||||
"mbgl/renderer/render_source.hpp": "src/mbgl/renderer/render_source.hpp",
|
||||
"mbgl/renderer/render_source_observer.hpp": "src/mbgl/renderer/render_source_observer.hpp",
|
||||
"mbgl/renderer/render_static_data.hpp": "src/mbgl/renderer/render_static_data.hpp",
|
||||
"mbgl/renderer/render_tile.hpp": "src/mbgl/renderer/render_tile.hpp",
|
||||
"mbgl/renderer/render_tree.hpp": "src/mbgl/renderer/render_tree.hpp",
|
||||
"mbgl/renderer/renderer_impl.hpp": "src/mbgl/renderer/renderer_impl.hpp",
|
||||
"mbgl/renderer/source_state.hpp": "src/mbgl/renderer/source_state.hpp",
|
||||
"mbgl/renderer/sources/render_custom_geometry_source.hpp": "src/mbgl/renderer/sources/render_custom_geometry_source.hpp",
|
||||
"mbgl/renderer/sources/render_geojson_source.hpp": "src/mbgl/renderer/sources/render_geojson_source.hpp",
|
||||
"mbgl/renderer/sources/render_image_source.hpp": "src/mbgl/renderer/sources/render_image_source.hpp",
|
||||
"mbgl/renderer/sources/render_raster_dem_source.hpp": "src/mbgl/renderer/sources/render_raster_dem_source.hpp",
|
||||
"mbgl/renderer/sources/render_raster_source.hpp": "src/mbgl/renderer/sources/render_raster_source.hpp",
|
||||
"mbgl/renderer/sources/render_tile_source.hpp": "src/mbgl/renderer/sources/render_tile_source.hpp",
|
||||
"mbgl/renderer/sources/render_vector_source.hpp": "src/mbgl/renderer/sources/render_vector_source.hpp",
|
||||
"mbgl/renderer/style_diff.hpp": "src/mbgl/renderer/style_diff.hpp",
|
||||
"mbgl/renderer/tile_mask.hpp": "src/mbgl/renderer/tile_mask.hpp",
|
||||
"mbgl/renderer/tile_parameters.hpp": "src/mbgl/renderer/tile_parameters.hpp",
|
||||
"mbgl/renderer/tile_pyramid.hpp": "src/mbgl/renderer/tile_pyramid.hpp",
|
||||
"mbgl/renderer/tile_render_data.hpp": "src/mbgl/renderer/tile_render_data.hpp",
|
||||
"mbgl/renderer/transition_parameters.hpp": "src/mbgl/renderer/transition_parameters.hpp",
|
||||
"mbgl/renderer/update_parameters.hpp": "src/mbgl/renderer/update_parameters.hpp",
|
||||
"mbgl/renderer/upload_parameters.hpp": "src/mbgl/renderer/upload_parameters.hpp",
|
||||
"mbgl/sprite/sprite_loader.hpp": "src/mbgl/sprite/sprite_loader.hpp",
|
||||
"mbgl/sprite/sprite_loader_observer.hpp": "src/mbgl/sprite/sprite_loader_observer.hpp",
|
||||
"mbgl/sprite/sprite_loader_worker.hpp": "src/mbgl/sprite/sprite_loader_worker.hpp",
|
||||
"mbgl/sprite/sprite_parser.hpp": "src/mbgl/sprite/sprite_parser.hpp",
|
||||
"mbgl/storage/asset_file_source.hpp": "src/mbgl/storage/asset_file_source.hpp",
|
||||
"mbgl/storage/http_file_source.hpp": "src/mbgl/storage/http_file_source.hpp",
|
||||
"mbgl/storage/local_file_source.hpp": "src/mbgl/storage/local_file_source.hpp",
|
||||
"mbgl/storage/main_resource_loader.hpp": "src/mbgl/storage/main_resource_loader.hpp",
|
||||
"mbgl/style/collection.hpp": "src/mbgl/style/collection.hpp",
|
||||
"mbgl/style/conversion/json.hpp": "src/mbgl/style/conversion/json.hpp",
|
||||
"mbgl/style/conversion/stringify.hpp": "src/mbgl/style/conversion/stringify.hpp",
|
||||
"mbgl/style/custom_tile_loader.hpp": "src/mbgl/style/custom_tile_loader.hpp",
|
||||
"mbgl/style/expression/dsl_impl.hpp": "src/mbgl/style/expression/dsl_impl.hpp",
|
||||
"mbgl/style/expression/util.hpp": "src/mbgl/style/expression/util.hpp",
|
||||
"mbgl/style/image_impl.hpp": "src/mbgl/style/image_impl.hpp",
|
||||
"mbgl/style/layer_impl.hpp": "src/mbgl/style/layer_impl.hpp",
|
||||
"mbgl/style/layer_observer.hpp": "src/mbgl/style/layer_observer.hpp",
|
||||
"mbgl/style/layers/background_layer_impl.hpp": "src/mbgl/style/layers/background_layer_impl.hpp",
|
||||
"mbgl/style/layers/background_layer_properties.hpp": "src/mbgl/style/layers/background_layer_properties.hpp",
|
||||
"mbgl/style/layers/circle_layer_impl.hpp": "src/mbgl/style/layers/circle_layer_impl.hpp",
|
||||
"mbgl/style/layers/circle_layer_properties.hpp": "src/mbgl/style/layers/circle_layer_properties.hpp",
|
||||
"mbgl/style/layers/fill_extrusion_layer_impl.hpp": "src/mbgl/style/layers/fill_extrusion_layer_impl.hpp",
|
||||
"mbgl/style/layers/fill_extrusion_layer_properties.hpp": "src/mbgl/style/layers/fill_extrusion_layer_properties.hpp",
|
||||
"mbgl/style/layers/fill_layer_impl.hpp": "src/mbgl/style/layers/fill_layer_impl.hpp",
|
||||
"mbgl/style/layers/fill_layer_properties.hpp": "src/mbgl/style/layers/fill_layer_properties.hpp",
|
||||
"mbgl/style/layers/heatmap_layer_impl.hpp": "src/mbgl/style/layers/heatmap_layer_impl.hpp",
|
||||
"mbgl/style/layers/heatmap_layer_properties.hpp": "src/mbgl/style/layers/heatmap_layer_properties.hpp",
|
||||
"mbgl/style/layers/hillshade_layer_impl.hpp": "src/mbgl/style/layers/hillshade_layer_impl.hpp",
|
||||
"mbgl/style/layers/hillshade_layer_properties.hpp": "src/mbgl/style/layers/hillshade_layer_properties.hpp",
|
||||
"mbgl/style/layers/line_layer_impl.hpp": "src/mbgl/style/layers/line_layer_impl.hpp",
|
||||
"mbgl/style/layers/line_layer_properties.hpp": "src/mbgl/style/layers/line_layer_properties.hpp",
|
||||
"mbgl/style/layers/raster_layer_impl.hpp": "src/mbgl/style/layers/raster_layer_impl.hpp",
|
||||
"mbgl/style/layers/raster_layer_properties.hpp": "src/mbgl/style/layers/raster_layer_properties.hpp",
|
||||
"mbgl/style/layers/symbol_layer_impl.hpp": "src/mbgl/style/layers/symbol_layer_impl.hpp",
|
||||
"mbgl/style/layers/symbol_layer_properties.hpp": "src/mbgl/style/layers/symbol_layer_properties.hpp",
|
||||
"mbgl/style/layout_property.hpp": "src/mbgl/style/layout_property.hpp",
|
||||
"mbgl/style/light_impl.hpp": "src/mbgl/style/light_impl.hpp",
|
||||
"mbgl/style/light_observer.hpp": "src/mbgl/style/light_observer.hpp",
|
||||
"mbgl/style/observer.hpp": "src/mbgl/style/observer.hpp",
|
||||
"mbgl/style/paint_property.hpp": "src/mbgl/style/paint_property.hpp",
|
||||
"mbgl/style/parser.hpp": "src/mbgl/style/parser.hpp",
|
||||
"mbgl/style/properties.hpp": "src/mbgl/style/properties.hpp",
|
||||
"mbgl/style/rapidjson_conversion.hpp": "src/mbgl/style/rapidjson_conversion.hpp",
|
||||
"mbgl/style/source_impl.hpp": "src/mbgl/style/source_impl.hpp",
|
||||
"mbgl/style/source_observer.hpp": "src/mbgl/style/source_observer.hpp",
|
||||
"mbgl/style/sources/custom_geometry_source_impl.hpp": "src/mbgl/style/sources/custom_geometry_source_impl.hpp",
|
||||
"mbgl/style/sources/geojson_source_impl.hpp": "src/mbgl/style/sources/geojson_source_impl.hpp",
|
||||
"mbgl/style/sources/image_source_impl.hpp": "src/mbgl/style/sources/image_source_impl.hpp",
|
||||
"mbgl/style/sources/raster_source_impl.hpp": "src/mbgl/style/sources/raster_source_impl.hpp",
|
||||
"mbgl/style/sources/vector_source_impl.hpp": "src/mbgl/style/sources/vector_source_impl.hpp",
|
||||
"mbgl/style/style_impl.hpp": "src/mbgl/style/style_impl.hpp",
|
||||
"mbgl/text/bidi.hpp": "src/mbgl/text/bidi.hpp",
|
||||
"mbgl/text/check_max_angle.hpp": "src/mbgl/text/check_max_angle.hpp",
|
||||
"mbgl/text/collision_feature.hpp": "src/mbgl/text/collision_feature.hpp",
|
||||
"mbgl/text/collision_index.hpp": "src/mbgl/text/collision_index.hpp",
|
||||
"mbgl/text/cross_tile_symbol_index.hpp": "src/mbgl/text/cross_tile_symbol_index.hpp",
|
||||
"mbgl/text/get_anchors.hpp": "src/mbgl/text/get_anchors.hpp",
|
||||
"mbgl/text/glyph.hpp": "src/mbgl/text/glyph.hpp",
|
||||
"mbgl/text/glyph_atlas.hpp": "src/mbgl/text/glyph_atlas.hpp",
|
||||
"mbgl/text/glyph_manager.hpp": "src/mbgl/text/glyph_manager.hpp",
|
||||
"mbgl/text/glyph_manager_observer.hpp": "src/mbgl/text/glyph_manager_observer.hpp",
|
||||
"mbgl/text/glyph_pbf.hpp": "src/mbgl/text/glyph_pbf.hpp",
|
||||
"mbgl/text/glyph_range.hpp": "src/mbgl/text/glyph_range.hpp",
|
||||
"mbgl/text/language_tag.hpp": "src/mbgl/text/language_tag.hpp",
|
||||
"mbgl/text/local_glyph_rasterizer.hpp": "src/mbgl/text/local_glyph_rasterizer.hpp",
|
||||
"mbgl/text/placement.hpp": "src/mbgl/text/placement.hpp",
|
||||
"mbgl/text/quads.hpp": "src/mbgl/text/quads.hpp",
|
||||
"mbgl/text/shaping.hpp": "src/mbgl/text/shaping.hpp",
|
||||
"mbgl/text/tagged_string.hpp": "src/mbgl/text/tagged_string.hpp",
|
||||
"mbgl/tile/custom_geometry_tile.hpp": "src/mbgl/tile/custom_geometry_tile.hpp",
|
||||
"mbgl/tile/geojson_tile.hpp": "src/mbgl/tile/geojson_tile.hpp",
|
||||
"mbgl/tile/geojson_tile_data.hpp": "src/mbgl/tile/geojson_tile_data.hpp",
|
||||
"mbgl/tile/geometry_tile.hpp": "src/mbgl/tile/geometry_tile.hpp",
|
||||
"mbgl/tile/geometry_tile_data.hpp": "src/mbgl/tile/geometry_tile_data.hpp",
|
||||
"mbgl/tile/geometry_tile_worker.hpp": "src/mbgl/tile/geometry_tile_worker.hpp",
|
||||
"mbgl/tile/raster_dem_tile.hpp": "src/mbgl/tile/raster_dem_tile.hpp",
|
||||
"mbgl/tile/raster_dem_tile_worker.hpp": "src/mbgl/tile/raster_dem_tile_worker.hpp",
|
||||
"mbgl/tile/raster_tile.hpp": "src/mbgl/tile/raster_tile.hpp",
|
||||
"mbgl/tile/raster_tile_worker.hpp": "src/mbgl/tile/raster_tile_worker.hpp",
|
||||
"mbgl/tile/tile.hpp": "src/mbgl/tile/tile.hpp",
|
||||
"mbgl/tile/tile_cache.hpp": "src/mbgl/tile/tile_cache.hpp",
|
||||
"mbgl/tile/tile_loader.hpp": "src/mbgl/tile/tile_loader.hpp",
|
||||
"mbgl/tile/tile_loader_impl.hpp": "src/mbgl/tile/tile_loader_impl.hpp",
|
||||
"mbgl/tile/tile_observer.hpp": "src/mbgl/tile/tile_observer.hpp",
|
||||
"mbgl/tile/vector_tile.hpp": "src/mbgl/tile/vector_tile.hpp",
|
||||
"mbgl/tile/vector_tile_data.hpp": "src/mbgl/tile/vector_tile_data.hpp",
|
||||
"mbgl/util/dtoa.hpp": "src/mbgl/util/dtoa.hpp",
|
||||
"mbgl/util/grid_index.hpp": "src/mbgl/util/grid_index.hpp",
|
||||
"mbgl/util/hash.hpp": "src/mbgl/util/hash.hpp",
|
||||
"mbgl/util/http_header.hpp": "src/mbgl/util/http_header.hpp",
|
||||
"mbgl/util/http_timeout.hpp": "src/mbgl/util/http_timeout.hpp",
|
||||
"mbgl/util/i18n.hpp": "src/mbgl/util/i18n.hpp",
|
||||
"mbgl/util/id.hpp": "src/mbgl/util/id.hpp",
|
||||
"mbgl/util/intersection_tests.hpp": "src/mbgl/util/intersection_tests.hpp",
|
||||
"mbgl/util/io.hpp": "src/mbgl/util/io.hpp",
|
||||
"mbgl/util/literal.hpp": "src/mbgl/util/literal.hpp",
|
||||
"mbgl/util/longest_common_subsequence.hpp": "src/mbgl/util/longest_common_subsequence.hpp",
|
||||
"mbgl/util/mapbox.hpp": "src/mbgl/util/mapbox.hpp",
|
||||
"mbgl/util/mat2.hpp": "src/mbgl/util/mat2.hpp",
|
||||
"mbgl/util/mat3.hpp": "src/mbgl/util/mat3.hpp",
|
||||
"mbgl/util/mat4.hpp": "src/mbgl/util/mat4.hpp",
|
||||
"mbgl/util/math.hpp": "src/mbgl/util/math.hpp",
|
||||
"mbgl/util/rapidjson.hpp": "src/mbgl/util/rapidjson.hpp",
|
||||
"mbgl/util/rect.hpp": "src/mbgl/util/rect.hpp",
|
||||
"mbgl/util/std.hpp": "src/mbgl/util/std.hpp",
|
||||
"mbgl/util/stopwatch.hpp": "src/mbgl/util/stopwatch.hpp",
|
||||
"mbgl/util/thread_local.hpp": "src/mbgl/util/thread_local.hpp",
|
||||
"mbgl/util/thread_pool.hpp": "src/mbgl/util/thread_pool.hpp",
|
||||
"mbgl/util/tile_coordinate.hpp": "src/mbgl/util/tile_coordinate.hpp",
|
||||
"mbgl/util/tile_cover.hpp": "src/mbgl/util/tile_cover.hpp",
|
||||
"mbgl/util/tile_cover_impl.hpp": "src/mbgl/util/tile_cover_impl.hpp",
|
||||
"mbgl/util/tile_range.hpp": "src/mbgl/util/tile_range.hpp",
|
||||
"mbgl/util/tiny_sdf.hpp": "src/mbgl/util/tiny_sdf.hpp",
|
||||
"mbgl/util/token.hpp": "src/mbgl/util/token.hpp",
|
||||
"mbgl/util/url.hpp": "src/mbgl/util/url.hpp",
|
||||
"mbgl/util/utf.hpp": "src/mbgl/util/utf.hpp",
|
||||
"mbgl/util/version.hpp": "src/mbgl/util/version.hpp",
|
||||
"parsedate/parsedate.hpp": "src/parsedate/parsedate.hpp"
|
||||
}
|
||||
}
|
||||
@@ -9,8 +9,16 @@ namespace expression {
|
||||
class GeoJSONFeature : public GeometryTileFeature {
|
||||
public:
|
||||
const Feature& feature;
|
||||
mutable optional<GeometryCollection> geometry;
|
||||
|
||||
GeoJSONFeature(const Feature& feature_) : feature(feature_) {}
|
||||
GeoJSONFeature(const Feature& feature_, const CanonicalTileID& canonical) : feature(feature_) {
|
||||
geometry = convertGeometry(feature.geometry, canonical);
|
||||
// https://github.com/mapbox/geojson-vt-cpp/issues/44
|
||||
if (getType() == FeatureType::Polygon) {
|
||||
geometry = fixupPolygons(*geometry);
|
||||
}
|
||||
}
|
||||
|
||||
FeatureType getType() const override {
|
||||
return apply_visitor(ToFeatureType(), feature.geometry);
|
||||
@@ -24,6 +32,11 @@ public:
|
||||
}
|
||||
return optional<mbgl::Value>();
|
||||
}
|
||||
const GeometryCollection& getGeometries() const override {
|
||||
if (geometry) return *geometry;
|
||||
geometry = GeometryCollection();
|
||||
return *geometry;
|
||||
}
|
||||
};
|
||||
|
||||
EvaluationResult Expression::evaluate(optional<float> zoom,
|
||||
@@ -41,6 +54,17 @@ EvaluationResult Expression::evaluate(optional<float> zoom,
|
||||
return this->evaluate(EvaluationContext(zoom, &f, colorRampParameter).withAvailableImages(&availableImages));
|
||||
}
|
||||
|
||||
EvaluationResult Expression::evaluate(optional<float> zoom,
|
||||
const Feature& feature,
|
||||
optional<double> colorRampParameter,
|
||||
const std::set<std::string>& availableImages,
|
||||
const CanonicalTileID& canonical) const {
|
||||
GeoJSONFeature f(feature, canonical);
|
||||
return this->evaluate(EvaluationContext(zoom, &f, colorRampParameter)
|
||||
.withAvailableImages(&availableImages)
|
||||
.withCanonicalTileID(&canonical));
|
||||
}
|
||||
|
||||
EvaluationResult Expression::evaluate(optional<mbgl::Value> accumulated, const Feature& feature) const {
|
||||
GeoJSONFeature f(feature);
|
||||
return this->evaluate(EvaluationContext(accumulated, &f));
|
||||
|
||||
@@ -7,41 +7,58 @@
|
||||
#include <mbgl/util/logging.hpp>
|
||||
#include <mbgl/util/string.hpp>
|
||||
|
||||
#include <rapidjson/document.h>
|
||||
#include <mbgl/style/conversion/json.hpp>
|
||||
|
||||
namespace mbgl {
|
||||
namespace {
|
||||
|
||||
double isLeft(mbgl::Point<double> P0, mbgl::Point<double> P1, mbgl::Point<double> P2) {
|
||||
return ((P1.x - P0.x) * (P2.y - P0.y) - (P2.x - P0.x) * (P1.y - P0.y));
|
||||
class PolygonFeature : public GeometryTileFeature {
|
||||
public:
|
||||
const Feature& feature;
|
||||
mutable optional<GeometryCollection> geometry;
|
||||
|
||||
PolygonFeature(const Feature& feature_, const CanonicalTileID& canonical) : feature(feature_) {
|
||||
geometry = convertGeometry(feature.geometry, canonical);
|
||||
assert(geometry);
|
||||
geometry = fixupPolygons(*geometry);
|
||||
}
|
||||
|
||||
FeatureType getType() const override { return FeatureType::Polygon; }
|
||||
const PropertyMap& getProperties() const override { return feature.properties; }
|
||||
FeatureIdentifier getID() const override { return feature.id; }
|
||||
optional<mbgl::Value> getValue(const std::string& /*key*/) const override { return optional<mbgl::Value>(); }
|
||||
const GeometryCollection& getGeometries() const override {
|
||||
assert(geometry);
|
||||
return *geometry;
|
||||
}
|
||||
};
|
||||
|
||||
bool rayIntersect(const mbgl::Point<double>& p, const mbgl::Point<double>& p1, const mbgl::Point<double>& p2) {
|
||||
return ((p1.y > p.y) != (p2.y > p.y)) && (p.x < (p2.x - p1.x) * (p.y - p1.y) / (p2.y - p1.y) + p1.x);
|
||||
}
|
||||
|
||||
// winding number algorithm for checking if point inside a ploygon or not.
|
||||
// http://geomalgorithms.com/a03-_inclusion.html#wn_PnPoly()
|
||||
bool pointWithinPolygons(mbgl::Point<double> point, const mapbox::geometry::polygon<double>& polys) {
|
||||
// wn = the winding number (=0 only when point is outside)
|
||||
int wn = 0;
|
||||
for (auto poly : polys) {
|
||||
auto size = poly.size();
|
||||
// loop through every edge of the polygon
|
||||
// ray casting algorithm for detecting if point is in polygon
|
||||
bool pointWithinPolygon(const mbgl::Point<double>& point, const mapbox::geometry::polygon<double>& polygon) {
|
||||
bool within = false;
|
||||
for (auto ring : polygon) {
|
||||
auto size = ring.size();
|
||||
// loop through every edge of the ring
|
||||
for (decltype(size) i = 0; i < size - 1; ++i) {
|
||||
if (poly[i].y <= point.y) {
|
||||
if (poly[i + 1].y > point.y) { // upward horizontal crossing from point to edge E(poly[i], poly[i+1])
|
||||
if (isLeft(poly[i], poly[i + 1], point) > 0) {
|
||||
++wn;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (poly[i + 1].y <= point.y) { // downward crossing
|
||||
if (isLeft(poly[i], poly[i + 1], point) < 0) {
|
||||
--wn;
|
||||
}
|
||||
}
|
||||
if (rayIntersect(point, ring[i], ring[i + 1])) {
|
||||
within = !within;
|
||||
}
|
||||
}
|
||||
if (wn != 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return wn != 0;
|
||||
return within;
|
||||
}
|
||||
|
||||
bool pointWithinPolygons(const mbgl::Point<double>& point, const mapbox::geometry::multi_polygon<double>& polygons) {
|
||||
for (auto polygon : polygons) {
|
||||
auto within = pointWithinPolygon(point, polygon);
|
||||
if (within) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool pointsWithinPolygons(const mbgl::GeometryTileFeature& feature,
|
||||
@@ -49,8 +66,11 @@ bool pointsWithinPolygons(const mbgl::GeometryTileFeature& feature,
|
||||
const mbgl::GeoJSON& geoJson) {
|
||||
return geoJson.match(
|
||||
[&feature, &canonical](const mapbox::geometry::geometry<double>& geometrySet) -> bool {
|
||||
return geometrySet.match(
|
||||
[&feature, &canonical](const mapbox::geometry::polygon<double>& polygons) -> bool {
|
||||
mbgl::Feature f(geometrySet);
|
||||
PolygonFeature polyFeature(f, canonical);
|
||||
auto refinedGeoSet = convertGeometry(polyFeature, canonical);
|
||||
return refinedGeoSet.match(
|
||||
[&feature, &canonical](const mapbox::geometry::multi_polygon<double>& polygons) -> bool {
|
||||
return convertGeometry(feature, canonical)
|
||||
.match(
|
||||
[&polygons](const mapbox::geometry::point<double>& point) -> bool {
|
||||
@@ -68,6 +88,24 @@ bool pointsWithinPolygons(const mbgl::GeometryTileFeature& feature,
|
||||
},
|
||||
[](const auto&) -> bool { return false; });
|
||||
},
|
||||
[&feature, &canonical](const mapbox::geometry::polygon<double>& polygon) -> bool {
|
||||
return convertGeometry(feature, canonical)
|
||||
.match(
|
||||
[&polygon](const mapbox::geometry::point<double>& point) -> bool {
|
||||
return pointWithinPolygon(point, polygon);
|
||||
},
|
||||
[&polygon](const mapbox::geometry::multi_point<double>& points) -> bool {
|
||||
auto result = false;
|
||||
for (const auto& p : points) {
|
||||
result = pointWithinPolygon(p, polygon);
|
||||
if (!result) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
},
|
||||
[](const auto&) -> bool { return false; });
|
||||
},
|
||||
[](const auto&) -> bool { return false; });
|
||||
},
|
||||
[](const auto&) -> bool { return false; });
|
||||
@@ -109,11 +147,11 @@ EvaluationResult Within::evaluate(const EvaluationContext& params) const {
|
||||
return false;
|
||||
}
|
||||
auto geometryType = params.feature->getType();
|
||||
// Currently only support Point/Points in polygon
|
||||
// Currently only support Point/Points in Polygon/Polygons
|
||||
if (geometryType == FeatureType::Point) {
|
||||
return pointsWithinPolygons(*params.feature, *params.canonical, geoJSONSource);
|
||||
} else {
|
||||
mbgl::Log::Warning(mbgl::Event::General, "Within expression currently only support 'Point' geometry type");
|
||||
mbgl::Log::Warning(mbgl::Event::General, "within expression currently only support 'Point' geometry type");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -122,7 +160,7 @@ ParseResult Within::parse(const Convertible& value, ParsingContext& ctx) {
|
||||
if (isArray(value)) {
|
||||
// object value, quoted with ["Within", value]
|
||||
if (arrayLength(value) != 2) {
|
||||
ctx.error("'Within' expression requires exactly one argument, but found " +
|
||||
ctx.error("'within' expression requires exactly one argument, but found " +
|
||||
util::toString(arrayLength(value) - 1) + " instead.");
|
||||
return ParseResult();
|
||||
}
|
||||
@@ -136,8 +174,37 @@ ParseResult Within::parse(const Convertible& value, ParsingContext& ctx) {
|
||||
return ParseResult();
|
||||
}
|
||||
|
||||
Value valueConverter(const mapbox::geojson::rapidjson_value& v) {
|
||||
if (v.IsDouble()) {
|
||||
return v.GetDouble();
|
||||
}
|
||||
if (v.IsString()) {
|
||||
return std::string(v.GetString());
|
||||
}
|
||||
if (v.IsArray()) {
|
||||
std::vector<Value> result;
|
||||
for (const auto& m : v.GetArray()) {
|
||||
result.push_back(valueConverter(m));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
// Ignore other types as valid geojson only contains above types.
|
||||
return Null;
|
||||
}
|
||||
|
||||
mbgl::Value Within::serialize() const {
|
||||
return std::vector<mbgl::Value>{{getOperator()}, {mapbox::geojson::stringify(geoJSONSource)}};
|
||||
std::unordered_map<std::string, Value> serialized;
|
||||
rapidjson::CrtAllocator allocator;
|
||||
const mapbox::geojson::rapidjson_value value = mapbox::geojson::convert(geoJSONSource, allocator);
|
||||
if (value.IsObject()) {
|
||||
for (const auto& m : value.GetObject()) {
|
||||
serialized.emplace(m.name.GetString(), valueConverter(m.value));
|
||||
}
|
||||
} else {
|
||||
mbgl::Log::Error(mbgl::Event::General,
|
||||
"Failed to serialize 'within' expression, converted rapidJSON is not an object");
|
||||
}
|
||||
return std::vector<mbgl::Value>{{getOperator(), *fromExpressionValue<mbgl::Value>(serialized)}};
|
||||
}
|
||||
|
||||
} // namespace expression
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#include <mbgl/tile/tile_id.hpp>
|
||||
|
||||
#include <mapbox/geometry/wagyu/wagyu.hpp>
|
||||
#include <mbgl/math/clamp.hpp>
|
||||
|
||||
namespace mbgl {
|
||||
|
||||
@@ -173,6 +174,82 @@ Feature::geometry_type convertGeometry(const GeometryTileFeature& geometryTileFe
|
||||
return Point<double>();
|
||||
}
|
||||
|
||||
GeometryCollection convertGeometry(const Feature::geometry_type& geometryTileFeature, const CanonicalTileID& tileID) {
|
||||
const double size = util::EXTENT * std::pow(2, tileID.z);
|
||||
const double x0 = util::EXTENT * static_cast<double>(tileID.x);
|
||||
const double y0 = util::EXTENT * static_cast<double>(tileID.y);
|
||||
|
||||
auto latLonToTileCoodinates = [&](const Point<double>& c) {
|
||||
Point<int16_t> p;
|
||||
|
||||
auto x = (c.x + 180.0) * size / 360.0 - x0;
|
||||
p.x =
|
||||
int16_t(util::clamp<int64_t>(x, std::numeric_limits<int16_t>::min(), std::numeric_limits<int16_t>::max()));
|
||||
|
||||
auto y = (180 - (std::log(std::tan((c.y + 90) * M_PI / 360.0)) * 180 / M_PI)) * size / 360 - y0;
|
||||
p.y =
|
||||
int16_t(util::clamp<int64_t>(y, std::numeric_limits<int16_t>::min(), std::numeric_limits<int16_t>::max()));
|
||||
|
||||
return p;
|
||||
};
|
||||
|
||||
return geometryTileFeature.match(
|
||||
[&](const Point<double>& point) -> GeometryCollection { return {{latLonToTileCoodinates(point)}}; },
|
||||
[&](const MultiPoint<double>& points) -> GeometryCollection {
|
||||
GeometryCollection result;
|
||||
std::vector<Point<int16_t>> temp;
|
||||
for (const auto p : points) {
|
||||
temp.emplace_back(latLonToTileCoodinates(p));
|
||||
}
|
||||
result = {temp};
|
||||
return result;
|
||||
},
|
||||
[&](const LineString<double>& lineString) -> GeometryCollection {
|
||||
GeometryCollection result;
|
||||
std::vector<Point<int16_t>> temp;
|
||||
for (const auto p : lineString) {
|
||||
temp.emplace_back(latLonToTileCoodinates(p));
|
||||
}
|
||||
result = {temp};
|
||||
return result;
|
||||
},
|
||||
[&](const MultiLineString<double>& lineStrings) -> GeometryCollection {
|
||||
GeometryCollection result;
|
||||
for (const auto line : lineStrings) {
|
||||
std::vector<Point<int16_t>> temp;
|
||||
for (const auto p : line) {
|
||||
temp.emplace_back(latLonToTileCoodinates(p));
|
||||
}
|
||||
result.emplace_back(temp);
|
||||
}
|
||||
return result;
|
||||
},
|
||||
[&](const Polygon<double> polygon) -> GeometryCollection {
|
||||
GeometryCollection result;
|
||||
for (const auto line : polygon) {
|
||||
std::vector<Point<int16_t>> temp;
|
||||
for (const auto p : line) {
|
||||
temp.emplace_back(latLonToTileCoodinates(p));
|
||||
}
|
||||
result.emplace_back(temp);
|
||||
}
|
||||
return result;
|
||||
},
|
||||
[&](const MultiPolygon<double> polygons) -> GeometryCollection {
|
||||
GeometryCollection result;
|
||||
for (const auto polygon : polygons)
|
||||
for (const auto line : polygon) {
|
||||
LineString<int16_t> temp;
|
||||
for (const auto p : line) {
|
||||
temp.emplace_back(latLonToTileCoodinates(p));
|
||||
}
|
||||
result.emplace_back(temp);
|
||||
}
|
||||
return result;
|
||||
},
|
||||
[](const auto&) -> GeometryCollection { return GeometryCollection(); });
|
||||
}
|
||||
|
||||
Feature convertFeature(const GeometryTileFeature& geometryTileFeature, const CanonicalTileID& tileID) {
|
||||
Feature feature { convertGeometry(geometryTileFeature, tileID) };
|
||||
feature.properties = geometryTileFeature.getProperties();
|
||||
|
||||
@@ -82,6 +82,8 @@ void limitHoles(GeometryCollection&, uint32_t maxHoles);
|
||||
|
||||
Feature::geometry_type convertGeometry(const GeometryTileFeature& geometryTileFeature, const CanonicalTileID& tileID);
|
||||
|
||||
GeometryCollection convertGeometry(const Feature::geometry_type& geometryTileFeature, const CanonicalTileID& tileID);
|
||||
|
||||
// convert from GeometryTileFeature to Feature (eventually we should eliminate GeometryTileFeature)
|
||||
Feature convertFeature(const GeometryTileFeature&, const CanonicalTileID&);
|
||||
|
||||
|
||||
4
test/fixtures/expression_equality/within.a.json
vendored
Normal file
4
test/fixtures/expression_equality/within.a.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
["within", {
|
||||
"type": "Polygon",
|
||||
"coordinates": [[[0, 0], [0, 5], [5, 5], [5, 0], [0, 0]]]
|
||||
}]
|
||||
4
test/fixtures/expression_equality/within.b.json
vendored
Normal file
4
test/fixtures/expression_equality/within.b.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
["within", {
|
||||
"type": "Polygon",
|
||||
"coordinates": [[[0, 0], [0, 6], [5, 5], [5, 0], [0, 0]]]
|
||||
}]
|
||||
@@ -16,6 +16,9 @@ public:
|
||||
geometry(std::move(geometry_)) {
|
||||
}
|
||||
|
||||
StubGeometryTileFeature(FeatureType type_, GeometryCollection geometry_)
|
||||
: type(type_), geometry(std::move(geometry_)) {}
|
||||
|
||||
PropertyMap properties;
|
||||
FeatureIdentifier id;
|
||||
FeatureType type = FeatureType::Point;
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
#include <mbgl/style/expression/dsl.hpp>
|
||||
#include <mbgl/style/expression/format_section_override.hpp>
|
||||
|
||||
#include <sstream>
|
||||
|
||||
using namespace mbgl;
|
||||
using namespace mbgl::style;
|
||||
using namespace mbgl::style::expression;
|
||||
@@ -218,3 +220,99 @@ TEST(PropertyExpression, ImageExpression) {
|
||||
EXPECT_EQ(evaluatedImage.id(), "bicycle-15"s);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(PropertyExpression, WithinExpression) {
|
||||
CanonicalTileID canonicalTileID(3, 3, 3);
|
||||
|
||||
// geoJSON source must be Polygon.(Currently only supports Polygon)
|
||||
static const std::string invalidGeoSource = R"({
|
||||
"type": "LineString",
|
||||
"coordinates": [[0, 0], [0, 5], [5, 5], [5, 0]]
|
||||
})";
|
||||
static const std::string validGeoSource = R"data(
|
||||
{
|
||||
"type": "Polygon",
|
||||
"coordinates": [
|
||||
[
|
||||
[-11.689453125, -9.79567758282973],
|
||||
[2.021484375, -10.012129557908128],
|
||||
[-15.99609375, -17.392579271057766],
|
||||
[-5.9765625, -5.659718554577273],
|
||||
[-16.259765625, -3.7327083213358336],
|
||||
[-17.75390625, -12.897489183755892],
|
||||
[-17.138671875, -21.002471054356715],
|
||||
[4.482421875, -16.8886597873816],
|
||||
[3.076171875, -7.01366792756663],
|
||||
[ -5.9326171875, 0.6591651462894632],
|
||||
[-16.1279296875, 1.4939713066293239],
|
||||
[-11.689453125, -9.79567758282973]
|
||||
]
|
||||
]
|
||||
})data";
|
||||
|
||||
// evaluation test with invalid geojson source
|
||||
{
|
||||
std::stringstream ss;
|
||||
ss << std::string(R"(["within", )") << invalidGeoSource << std::string(R"( ])");
|
||||
auto expression = createExpression(ss.str().c_str());
|
||||
ASSERT_FALSE(expression);
|
||||
}
|
||||
|
||||
// evaluation test with valid geojson source
|
||||
std::stringstream ss;
|
||||
ss << std::string(R"(["within", )") << validGeoSource << std::string(R"( ])");
|
||||
auto expression = createExpression(ss.str().c_str());
|
||||
ASSERT_TRUE(expression);
|
||||
PropertyExpression<bool> propExpr(std::move(expression));
|
||||
|
||||
// evaluation test with valid geojson source but FeatureType is not Point (currently only support
|
||||
// FeatureType::Point)
|
||||
{
|
||||
// testLine is inside polygon, but will return false
|
||||
LineString<double> testLine{{-9.228515625, -17.560246503294888}, {-2.4609375, -16.04581345375217}};
|
||||
auto geoLine = convertGeometry(testLine, canonicalTileID);
|
||||
StubGeometryTileFeature lineFeature(FeatureType::LineString, geoLine);
|
||||
|
||||
auto evaluatedResult = propExpr.evaluate(EvaluationContext(&lineFeature).withCanonicalTileID(&canonicalTileID));
|
||||
EXPECT_FALSE(evaluatedResult);
|
||||
}
|
||||
|
||||
// evaluation test with valid geojson source and valid point features
|
||||
{
|
||||
auto getPointFeature = [&canonicalTileID](const Point<double>& testPoint) -> StubGeometryTileFeature {
|
||||
auto geoPoint = convertGeometry(testPoint, canonicalTileID);
|
||||
StubGeometryTileFeature pointFeature(FeatureType::Point, geoPoint);
|
||||
return pointFeature;
|
||||
};
|
||||
|
||||
// check `within` algorithm
|
||||
auto pointFeature = getPointFeature(Point<double>(-10.72265625, -7.27529233637217));
|
||||
auto evaluatedResult =
|
||||
propExpr.evaluate(EvaluationContext(&pointFeature).withCanonicalTileID(&canonicalTileID));
|
||||
EXPECT_FALSE(evaluatedResult);
|
||||
|
||||
pointFeature = getPointFeature(Point<double>(-7.646484374999999, -12.382928338487396));
|
||||
evaluatedResult = propExpr.evaluate(EvaluationContext(&pointFeature).withCanonicalTileID(&canonicalTileID));
|
||||
EXPECT_FALSE(evaluatedResult);
|
||||
|
||||
pointFeature = getPointFeature(Point<double>(-15.2490234375, -2.986927393334863));
|
||||
evaluatedResult = propExpr.evaluate(EvaluationContext(&pointFeature).withCanonicalTileID(&canonicalTileID));
|
||||
EXPECT_FALSE(evaluatedResult);
|
||||
|
||||
pointFeature = getPointFeature(Point<double>(-10.590820312499998, 2.4601811810210052));
|
||||
evaluatedResult = propExpr.evaluate(EvaluationContext(&pointFeature).withCanonicalTileID(&canonicalTileID));
|
||||
EXPECT_FALSE(evaluatedResult);
|
||||
|
||||
pointFeature = getPointFeature(Point<double>(-3.9990234375, -4.915832801313164));
|
||||
evaluatedResult = propExpr.evaluate(EvaluationContext(&pointFeature).withCanonicalTileID(&canonicalTileID));
|
||||
EXPECT_TRUE(evaluatedResult);
|
||||
|
||||
pointFeature = getPointFeature(Point<double>(-1.1865234375, -16.63619187839765));
|
||||
evaluatedResult = propExpr.evaluate(EvaluationContext(&pointFeature).withCanonicalTileID(&canonicalTileID));
|
||||
EXPECT_TRUE(evaluatedResult);
|
||||
|
||||
pointFeature = getPointFeature(Point<double>(-15.5126953125, -11.73830237143684));
|
||||
evaluatedResult = propExpr.evaluate(EvaluationContext(&pointFeature).withCanonicalTileID(&canonicalTileID));
|
||||
EXPECT_TRUE(evaluatedResult);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user