1 #pragma once
2 
3 #include <mbgl/style/source_impl.hpp>
4 #include <mbgl/style/sources/image_source.hpp>
5 #include <mbgl/util/image.hpp>
6 #include <mbgl/util/geo.hpp>
7 
8 namespace mbgl {
9 
10 namespace style {
11 
12 class ImageSource::Impl : public Source::Impl {
13 public:
14     Impl(std::string id, std::array<LatLng, 4> coords);
15     Impl(const Impl& rhs, std::array<LatLng, 4> coords);
16     Impl(const Impl& rhs, PremultipliedImage&& image);
17 
18     ~Impl() final;
19 
20     std::shared_ptr<PremultipliedImage> getImage() const;
21     std::array<LatLng, 4> getCoordinates() const;
22 
23     optional<std::string> getAttribution() const final;
24 private:
25     std::array<LatLng, 4> coords;
26     std::shared_ptr<PremultipliedImage> image;
27 };
28 
29 } // namespace style
30 } // namespace mbgl
31