diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2017-04-21 13:35:34 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2017-06-22 08:04:39 -0700 |
commit | 1520a56813f82bbe875774fdc2b3df26392278d6 (patch) | |
tree | d8f6ccc10e118bd2be6a954951c037f9c2fc1384 /include | |
parent | be7e9bbb8d54c775127f53d793c117c4bf5e2764 (diff) | |
download | qtlocation-mapboxgl-1520a56813f82bbe875774fdc2b3df26392278d6.tar.gz |
[all] Promote Style to public API
Diffstat (limited to 'include')
-rw-r--r-- | include/mbgl/map/map.hpp | 41 | ||||
-rw-r--r-- | include/mbgl/style/style.hpp | 75 |
2 files changed, 80 insertions, 36 deletions
diff --git a/include/mbgl/map/map.hpp b/include/mbgl/map/map.hpp index 33b40a8e77..85c95d6491 100644 --- a/include/mbgl/map/map.hpp +++ b/include/mbgl/map/map.hpp @@ -9,7 +9,6 @@ #include <mbgl/util/noncopyable.hpp> #include <mbgl/util/size.hpp> #include <mbgl/annotation/annotation.hpp> -#include <mbgl/style/transition_options.hpp> #include <mbgl/map/camera.hpp> #include <mbgl/map/query.hpp> @@ -28,9 +27,7 @@ class Scheduler; namespace style { class Image; -class Source; -class Layer; -class Light; +class Style; } // namespace style class Map : private util::noncopyable { @@ -58,15 +55,15 @@ public: // Main render function. void render(View&); - // Styling - style::TransitionOptions getTransitionOptions() const; - void setTransitionOptions(const style::TransitionOptions&); - + // Style void setStyleURL(const std::string&); void setStyleJSON(const std::string&); std::string getStyleURL() const; std::string getStyleJSON() const; + style::Style& getStyle(); + const style::Style& getStyle() const; + // Transition void cancelTransitions(); void setGestureInProgress(bool); @@ -156,34 +153,6 @@ public: void updateAnnotation(AnnotationID, const Annotation&); void removeAnnotation(AnnotationID); - // Sources - std::vector<style::Source*> getSources(); - style::Source* getSource(const std::string& sourceID); - void addSource(std::unique_ptr<style::Source>); - std::unique_ptr<style::Source> removeSource(const std::string& sourceID); - - // Layers - std::vector<style::Layer*> getLayers(); - style::Layer* getLayer(const std::string& layerID); - void addLayer(std::unique_ptr<style::Layer>, const optional<std::string>& beforeLayerID = {}); - std::unique_ptr<style::Layer> removeLayer(const std::string& layerID); - - // Images - void addImage(std::unique_ptr<style::Image>); - void removeImage(const std::string&); - const style::Image* getImage(const std::string&); - - // Light - void setLight(std::unique_ptr<style::Light>); - style::Light* getLight(); - - // Defaults - std::string getStyleName() const; - LatLng getDefaultLatLng() const; - double getDefaultZoom() const; - double getDefaultBearing() const; - double getDefaultPitch() const; - // Feature queries std::vector<Feature> queryRenderedFeatures(const ScreenCoordinate&, const RenderedQueryOptions& options = {}); std::vector<Feature> queryRenderedFeatures(const ScreenBox&, const RenderedQueryOptions& options = {}); diff --git a/include/mbgl/style/style.hpp b/include/mbgl/style/style.hpp new file mode 100644 index 0000000000..82ff1b3078 --- /dev/null +++ b/include/mbgl/style/style.hpp @@ -0,0 +1,75 @@ +#pragma once + +#include <mbgl/style/transition_options.hpp> +#include <mbgl/util/geo.hpp> + +#include <string> +#include <vector> +#include <memory> + +namespace mbgl { + +class FileSource; +class Scheduler; + +namespace style { + +class Light; +class Image; +class Source; +class Layer; + +class Style { +public: + Style(Scheduler&, FileSource&, float pixelRatio); + ~Style(); + + // Defaults + std::string getName() const; + LatLng getDefaultLatLng() const; + double getDefaultZoom() const; + double getDefaultBearing() const; + double getDefaultPitch() const; + + // TransitionOptions + TransitionOptions getTransitionOptions() const; + void setTransitionOptions(const TransitionOptions&); + + // Light + Light* getLight(); + const Light* getLight() const; + + void setLight(std::unique_ptr<Light>); + + // Images + const Image* getImage(const std::string&) const; + void addImage(std::unique_ptr<Image>); + void removeImage(const std::string&); + + // Sources + std::vector< Source*> getSources(); + std::vector<const Source*> getSources() const; + + Source* getSource(const std::string&); + const Source* getSource(const std::string&) const; + + void addSource(std::unique_ptr<Source>); + std::unique_ptr<Source> removeSource(const std::string& sourceID); + + // Layers + std::vector< Layer*> getLayers(); + std::vector<const Layer*> getLayers() const; + + Layer* getLayer(const std::string&); + const Layer* getLayer(const std::string&) const; + + void addLayer(std::unique_ptr<Layer>, const optional<std::string>& beforeLayerID = {}); + std::unique_ptr<Layer> removeLayer(const std::string& layerID); + + // Private implementation + class Impl; + const std::unique_ptr<Impl> impl; +}; + +} // namespace style +} // namespace mbgl |