diff options
Diffstat (limited to 'src/mbgl/style/sources/raster_dem_source.cpp')
-rw-r--r-- | src/mbgl/style/sources/raster_dem_source.cpp | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/src/mbgl/style/sources/raster_dem_source.cpp b/src/mbgl/style/sources/raster_dem_source.cpp index 2535772f85..95dc7d1edd 100644 --- a/src/mbgl/style/sources/raster_dem_source.cpp +++ b/src/mbgl/style/sources/raster_dem_source.cpp @@ -5,9 +5,15 @@ #include <mbgl/style/sources/raster_dem_source.hpp> #include <mbgl/style/sources/raster_dem_source_impl.hpp> #include <mbgl/tile/tile.hpp> +#include <mbgl/util/enum.hpp> #include <utility> namespace mbgl { + +using TilesetDEMEncoding = Tileset::DEMEncoding; +MBGL_DEFINE_ENUM(TilesetDEMEncoding, + {{TilesetDEMEncoding::Mapbox, "mapbox"}, {TilesetDEMEncoding::Terrarium, "terrarium"}}); + namespace style { RasterDEMSource::RasterDEMSource(std::string id, variant<std::string, Tileset> urlOrTileset_, uint16_t tileSize) @@ -17,20 +23,10 @@ bool RasterDEMSource::supportsLayerType(const mbgl::style::LayerTypeInfo* info) return mbgl::underlying_type(TileKind::RasterDEM) == mbgl::underlying_type(info->tileKind); } -static std::string tilesetDEMEncodingToString(mbgl::Tileset::DEMEncoding encoding) { - switch (encoding) { - case mbgl::Tileset::DEMEncoding::Mapbox: - return "mapbox"; - case mbgl::Tileset::DEMEncoding::Terrarium: - return "terrarium"; - } - return "terrarium"; -} - Value RasterDEMSource::serialize() const { auto value = RasterSource::serialize(); if (auto* tileset = getTileset()) { - value.getObject()->insert({"encoding", tilesetDEMEncodingToString(tileset->encoding)}); + value.getObject()->insert({"encoding", conversion::makeValue(tileset->encoding)}); } return value; } @@ -39,6 +35,22 @@ const RasterDEMSource::Impl& RasterDEMSource::impl() const { return static_cast<const Impl&>(*baseImpl); } +Value RasterDEMSource::getPropertyInternal(const std::string& name) const { + if (name == "encoding") { + if (auto* tileset = getTileset()) { + return conversion::makeValue(tileset->encoding); + } + } + return NullValue(); +} + +Value RasterDEMSource::getPropertyDefaultValueInternal(const std::string& name) const { + if (name == "encoding") { + return conversion::makeValue(TilesetDEMEncoding::Mapbox); + } + return NullValue(); +} + Mutable<Source::Impl> RasterDEMSource::createMutable() const noexcept { return staticMutableCast<Source::Impl>(makeMutable<Impl>(impl())); } |