From 24198ebca86cbe1329a1854f080e3f4638973142 Mon Sep 17 00:00:00 2001 From: Bruno de Oliveira Abinader Date: Mon, 20 Mar 2017 17:32:06 +0200 Subject: [core] Expose Source::getZoomRange --- src/mbgl/annotation/annotation_source.cpp | 2 +- src/mbgl/annotation/annotation_source.hpp | 2 +- src/mbgl/style/source.cpp | 6 +++++- src/mbgl/style/source_impl.hpp | 2 +- src/mbgl/style/sources/geojson_source_impl.cpp | 2 +- src/mbgl/style/sources/geojson_source_impl.hpp | 3 ++- src/mbgl/style/tile_source_impl.cpp | 2 +- src/mbgl/style/tile_source_impl.hpp | 4 ++-- 8 files changed, 14 insertions(+), 9 deletions(-) (limited to 'src/mbgl') diff --git a/src/mbgl/annotation/annotation_source.cpp b/src/mbgl/annotation/annotation_source.cpp index a9db9ad8ae..7434029c4b 100644 --- a/src/mbgl/annotation/annotation_source.cpp +++ b/src/mbgl/annotation/annotation_source.cpp @@ -14,7 +14,7 @@ AnnotationSource::Impl::Impl(Source& base_) : Source::Impl(SourceType::Annotations, AnnotationManager::SourceID, base_) { } -Range AnnotationSource::Impl::getZoomRange() { +Range AnnotationSource::Impl::getZoomRange() const { return { 0, 22 }; } diff --git a/src/mbgl/annotation/annotation_source.hpp b/src/mbgl/annotation/annotation_source.hpp index d995222f33..62d1aa3488 100644 --- a/src/mbgl/annotation/annotation_source.hpp +++ b/src/mbgl/annotation/annotation_source.hpp @@ -20,7 +20,7 @@ public: private: uint16_t getTileSize() const final { return util::tileSize; } - Range getZoomRange() final; + Range getZoomRange() const final; std::unique_ptr createTile(const OverscaledTileID&, const style::UpdateParameters&) final; }; diff --git a/src/mbgl/style/source.cpp b/src/mbgl/style/source.cpp index 25c06024d6..9ef245ac34 100644 --- a/src/mbgl/style/source.cpp +++ b/src/mbgl/style/source.cpp @@ -17,7 +17,11 @@ const std::string& Source::getID() const { optional Source::getAttribution() const { return baseImpl->getAttribution(); } - + +Range Source::getZoomRange() const { + return baseImpl->getZoomRange(); +} + std::vector Source::querySourceFeatures(const SourceQueryOptions& options) { return baseImpl->querySourceFeatures(options); } diff --git a/src/mbgl/style/source_impl.hpp b/src/mbgl/style/source_impl.hpp index b9707edaa7..fbec2b0eba 100644 --- a/src/mbgl/style/source_impl.hpp +++ b/src/mbgl/style/source_impl.hpp @@ -83,6 +83,7 @@ public: const std::string id; virtual optional getAttribution() const { return {}; }; + virtual Range getZoomRange() const = 0; bool loaded = false; @@ -109,7 +110,6 @@ private: void onTileError(Tile&, std::exception_ptr) override; virtual uint16_t getTileSize() const = 0; - virtual Range getZoomRange() = 0; virtual std::unique_ptr createTile(const OverscaledTileID&, const UpdateParameters&) = 0; std::map renderTiles; diff --git a/src/mbgl/style/sources/geojson_source_impl.cpp b/src/mbgl/style/sources/geojson_source_impl.cpp index c7c3753076..5ceb4f71e0 100644 --- a/src/mbgl/style/sources/geojson_source_impl.cpp +++ b/src/mbgl/style/sources/geojson_source_impl.cpp @@ -153,7 +153,7 @@ void GeoJSONSource::Impl::loadDescription(FileSource& fileSource) { }); } -Range GeoJSONSource::Impl::getZoomRange() { +Range GeoJSONSource::Impl::getZoomRange() const { assert(loaded); return { 0, options.maxzoom }; } diff --git a/src/mbgl/style/sources/geojson_source_impl.hpp b/src/mbgl/style/sources/geojson_source_impl.hpp index eec7cf0605..05302d6bc0 100644 --- a/src/mbgl/style/sources/geojson_source_impl.hpp +++ b/src/mbgl/style/sources/geojson_source_impl.hpp @@ -28,10 +28,11 @@ public: return util::tileSize; } + Range getZoomRange() const final; + private: void _setGeoJSON(const GeoJSON&); - Range getZoomRange() final; std::unique_ptr createTile(const OverscaledTileID&, const UpdateParameters&) final; GeoJSONOptions options; diff --git a/src/mbgl/style/tile_source_impl.cpp b/src/mbgl/style/tile_source_impl.cpp index bda602bb5f..44a25a8bfb 100644 --- a/src/mbgl/style/tile_source_impl.cpp +++ b/src/mbgl/style/tile_source_impl.cpp @@ -113,7 +113,7 @@ void TileSourceImpl::loadDescription(FileSource& fileSource) { }); } -Range TileSourceImpl::getZoomRange() { +Range TileSourceImpl::getZoomRange() const { assert(loaded); return tileset.zoomRange; } diff --git a/src/mbgl/style/tile_source_impl.hpp b/src/mbgl/style/tile_source_impl.hpp index 2b17872d2b..1fda3b3769 100644 --- a/src/mbgl/style/tile_source_impl.hpp +++ b/src/mbgl/style/tile_source_impl.hpp @@ -36,9 +36,9 @@ public: optional getAttribution() const override; -protected: - Range getZoomRange() final; + Range getZoomRange() const final; +protected: const variant urlOrTileset; const uint16_t tileSize; -- cgit v1.2.1