summaryrefslogtreecommitdiff
path: root/include/mbgl/map/map_options.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/mbgl/map/map_options.hpp')
-rw-r--r--include/mbgl/map/map_options.hpp147
1 files changed, 147 insertions, 0 deletions
diff --git a/include/mbgl/map/map_options.hpp b/include/mbgl/map/map_options.hpp
new file mode 100644
index 0000000000..c9b1661dc8
--- /dev/null
+++ b/include/mbgl/map/map_options.hpp
@@ -0,0 +1,147 @@
+/*
+ * Copyright (c) 2019 - Mapbox, Inc.
+ *
+ * You may use this code with your Mapbox account and under the
+ * Mapbox Terms of Service (https://www.mapbox.com/tos/).
+ *
+ * All other rights reserved.
+ */
+
+#pragma once
+
+#include <mbgl/map/mode.hpp>
+
+#include <memory>
+#include <string>
+
+namespace mbgl {
+
+/**
+ * @brief Holds values for Map options.
+ */
+class MapOptions {
+public:
+ /**
+ * @brief Constructs a MapOptions object with default values.
+ */
+ MapOptions();
+ ~MapOptions();
+
+ /**
+ * @brief Sets the map rendering mode. By default, it is set to Continuous
+ * so the map will render as data arrives from the network and react
+ * immediately to state changes.
+ *
+ * @param mode Map rendering mode.
+ * @return reference to MapOptions for chaining options together.
+ */
+ MapOptions& withMapMode(MapMode mode);
+
+ /**
+ * @brief Gets the previously set (or default) map mode.
+ *
+ * @return map mode.
+ */
+ MapMode mapMode() const;
+
+ /**
+ * @brief Sets the map constrain mode. This is used to limit the map to wrap
+ * around the globe horizontally. By default, it is set to HeightOnly.
+ *
+ * @param mode Map constrain mode.
+ * @return reference to MapOptions for chaining options together.
+ */
+ MapOptions& withConstrainMode(ConstrainMode mode);
+
+ /**
+ * @brief Gets the previously set (or default) constrain mode.
+ *
+ * @return constrain mode.
+ */
+ ConstrainMode constrainMode() const;
+
+ /**
+ * @brief Sets the viewport mode. This is used to flip the vertical
+ * orientation of the map as some devices may use inverted orientation.
+ *
+ * @param mode Viewport mode.
+ * @return reference to MapOptions for chaining options together.
+ */
+ MapOptions& withViewportMode(ViewportMode mode);
+
+ /**
+ * @brief Gets the previously set (or default) viewport mode.
+ *
+ * @return viewport mode.
+ */
+ ViewportMode viewportMode() const;
+
+ /**
+ * @brief Sets the cache path.
+ *
+ * @param path Cache path.
+ * @return reference to MapOptions for chaining options together.
+ */
+ MapOptions& withCachePath(std::string path);
+
+ /**
+ * @brief Gets the previously set (or default) cache path.
+ *
+ * @return cache path
+ */
+ const std::string& cachePath() const;
+
+ /**
+ * @brief Sets the asset path, which is the root directory from where
+ * the asset:// scheme gets resolved in a style.
+ *
+ * @param path Asset path.
+ * @return reference to MapOptions for chaining options together.
+ */
+ MapOptions& withAssetRoot(std::string path);
+
+ /**
+ * @brief Gets the previously set (or default) assert path.
+ *
+ * @return asset path
+ */
+ const std::string& assetRoot() const;
+
+ /**
+ * @brief Sets the maximum cache size.
+ *
+ * @param size Cache maximum size in bytes.
+ * @return reference to MapOptions for chaining options together.
+ */
+ MapOptions& withMaximumCacheSize(uint64_t size);
+
+ /**
+ * @brief Gets the previously set (or default) maximum allowed cache size.
+ *
+ * @return maximum allowed cache database size in bytes.
+ */
+ uint64_t maximumCacheSize() const;
+
+ /**
+ * @brief Specify whether to enable cross-source symbol collision detection
+ * or not. By default, it is set to true.
+ *
+ * @param enableCollisions true to enable, false to disable
+ * @return reference to MapOptions for chaining options together.
+ */
+ MapOptions& withCrossSourceCollisions(bool enableCollisions);
+
+ /**
+ * @brief Gets the previously set (or default) crossSourceCollisions
+ *
+ * @return true if ecross-source symbol collision detection enabled,
+ * false otherwise.
+ */
+ bool crossSourceCollisions() const;
+
+private:
+ class Impl;
+ std::shared_ptr<Impl> impl_;
+};
+
+} // namespace mbgl