summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzmiao <miao.zhao@mapbox.com>2020-02-07 15:34:01 +0200
committerzmiao <miao.zhao@mapbox.com>2020-02-12 12:24:05 +0200
commit2963afa010e75bb8bc3c20150c06c5779121077d (patch)
tree009843afa585563a0bb0d2dfee41edfe1ec70baf /src
parent1bd2ccf2398004b02b479e6ad3144f52e7631b2a (diff)
downloadqtlocation-mapboxgl-2963afa010e75bb8bc3c20150c06c5779121077d.tar.gz
Add support for expression test
Fix polygon within algorithm Add Unit tests Fix incorrect metrics folder for ios-render-test-runner job
Diffstat (limited to 'src')
-rw-r--r--src/core-files.json817
-rw-r--r--src/mbgl/style/expression/expression.cpp24
-rw-r--r--src/mbgl/style/expression/within.cpp131
-rw-r--r--src/mbgl/tile/geometry_tile_data.cpp77
-rw-r--r--src/mbgl/tile/geometry_tile_data.hpp2
5 files changed, 202 insertions, 849 deletions
diff --git a/src/core-files.json b/src/core-files.json
deleted file mode 100644
index 49fc69705c..0000000000
--- a/src/core-files.json
+++ /dev/null
@@ -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"
- }
-}
diff --git a/src/mbgl/style/expression/expression.cpp b/src/mbgl/style/expression/expression.cpp
index 3252bb632f..66e2e30b14 100644
--- a/src/mbgl/style/expression/expression.cpp
+++ b/src/mbgl/style/expression/expression.cpp
@@ -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));
diff --git a/src/mbgl/style/expression/within.cpp b/src/mbgl/style/expression/within.cpp
index d02ea47cb2..a26f6fb7c8 100644
--- a/src/mbgl/style/expression/within.cpp
+++ b/src/mbgl/style/expression/within.cpp
@@ -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
diff --git a/src/mbgl/tile/geometry_tile_data.cpp b/src/mbgl/tile/geometry_tile_data.cpp
index 838f37f0da..56bef66c62 100644
--- a/src/mbgl/tile/geometry_tile_data.cpp
+++ b/src/mbgl/tile/geometry_tile_data.cpp
@@ -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();
diff --git a/src/mbgl/tile/geometry_tile_data.hpp b/src/mbgl/tile/geometry_tile_data.hpp
index a0a069f3d1..fc0790db83 100644
--- a/src/mbgl/tile/geometry_tile_data.hpp
+++ b/src/mbgl/tile/geometry_tile_data.hpp
@@ -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&);