#pragma once #include #include #include namespace mbgl { class RenderRasterDEMSource : public RenderSource { public: RenderRasterDEMSource(Immutable); bool isLoaded() const final; void update(Immutable, const std::vector>&, bool needsRendering, bool needsRelayout, const TileParameters&) final; void upload(gfx::UploadPass&) final; void prepare(const SourcePrepareParameters&) final; void finishRender(PaintParameters&) final; std::vector> getRenderTiles() final; std::unordered_map> queryRenderedFeatures(const ScreenLineString& geometry, const TransformState& transformState, const std::vector& layers, const RenderedQueryOptions& options, const mat4& projMatrix) const final; std::vector querySourceFeatures(const SourceQueryOptions&) const final; void reduceMemoryUse() final; void dumpDebugLogs() const final; uint8_t getMaxZoom() const { return maxzoom; }; private: const style::RasterSource::Impl& impl() const; TilePyramid tilePyramid; optional tileset; uint8_t maxzoom = 15; protected: void onTileChanged(Tile&) final; }; template <> inline bool RenderSource::is() const { return baseImpl->type == style::SourceType::RasterDEM; } } // namespace mbgl