#pragma once #include #include namespace mbgl { class UpdateParameters; /** * RendererState acts as a Memento object that is able to extract data out of * UpdateParameters (an opaque object from the public API perspective). */ class RendererState { public: /// Obtains a CameraOptions out of a given UpdateParameters object. static CameraOptions getCameraOptions(const UpdateParameters&, const EdgeInsets& = {}); /// Returns whether an image with the given ID exists from a given UpdateParamters object. static bool hasImage(const UpdateParameters&, const std::string& id); /// Returns whether a layer with the given ID exists from a given UpdateParamters object. static bool hasLayer(const UpdateParameters&, const std::string& id); /// Returns whether a source with the given ID exists from a given UpdateParamters object. static bool hasSource(const UpdateParameters&, const std::string& id); /// Obtains the geographical coordinate out of a given screen coordinate. static ScreenCoordinate pixelForLatLng(const UpdateParameters&, const LatLng&); /// Obtains the screen coordinate out of a given geographical coordinate. static LatLng latLngForPixel(const UpdateParameters&, const ScreenCoordinate&); }; } // namespace mbgl