summaryrefslogtreecommitdiff
path: root/src/mbgl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl')
-rw-r--r--src/mbgl/map/map.cpp20
-rw-r--r--src/mbgl/map/transform.cpp46
-rw-r--r--src/mbgl/map/transform.hpp22
-rw-r--r--src/mbgl/map/transform_state.cpp4
-rw-r--r--src/mbgl/map/transform_state.hpp1
5 files changed, 13 insertions, 80 deletions
diff --git a/src/mbgl/map/map.cpp b/src/mbgl/map/map.cpp
index 45b2f26568..19b1222f0e 100644
--- a/src/mbgl/map/map.cpp
+++ b/src/mbgl/map/map.cpp
@@ -532,23 +532,7 @@ void Map::resetPosition(const EdgeInsets& padding) {
}
-#pragma mark - Scale
-
-void Map::scaleBy(double ds, optional<ScreenCoordinate> anchor, const AnimationOptions& animation) {
- impl->cameraMutated = true;
- impl->transform.scaleBy(ds, anchor, animation);
- impl->onUpdate(Update::RecalculateStyle);
-}
-
-void Map::setScale(double scale, optional<ScreenCoordinate> anchor, const AnimationOptions& animation) {
- impl->cameraMutated = true;
- impl->transform.setScale(scale, anchor, animation);
- impl->onUpdate(Update::RecalculateStyle);
-}
-
-double Map::getScale() const {
- return impl->transform.getScale();
-}
+#pragma mark - Zoom
void Map::setZoom(double zoom, const AnimationOptions& animation) {
impl->cameraMutated = true;
@@ -620,7 +604,7 @@ CameraOptions Map::cameraForLatLngs(const std::vector<LatLng>& latLngs, const Ed
scaleY -= (padding.top + padding.bottom) / height;
minScale = util::min(scaleX, scaleY);
}
- double zoom = util::log2(getScale() * minScale);
+ double zoom = getZoom() + util::log2(minScale);
zoom = util::clamp(zoom, getMinZoom(), getMaxZoom());
// Calculate the center point of a virtual bounds that is extended in all directions by padding.
diff --git a/src/mbgl/map/transform.cpp b/src/mbgl/map/transform.cpp
index eab40a6ee5..67729f7fe2 100644
--- a/src/mbgl/map/transform.cpp
+++ b/src/mbgl/map/transform.cpp
@@ -384,52 +384,28 @@ ScreenCoordinate Transform::getScreenCoordinate(const EdgeInsets& padding) const
#pragma mark - Zoom
-void Transform::scaleBy(double ds, const AnimationOptions& animation) {
- scaleBy(ds, optional<ScreenCoordinate> {}, animation);
-}
-
-void Transform::scaleBy(double ds, optional<ScreenCoordinate> anchor, const AnimationOptions& animation) {
- if (std::isnan(ds)) return;
- double scale = util::clamp(state.scale * ds, state.min_scale, state.max_scale);
- setScale(scale, anchor, animation);
-}
-
void Transform::setZoom(double zoom, const AnimationOptions& animation) {
- setZoom(zoom, optional<ScreenCoordinate> {}, animation);
+ CameraOptions camera;
+ camera.zoom = zoom;
+ easeTo(camera, animation);
}
void Transform::setZoom(double zoom, optional<ScreenCoordinate> anchor, const AnimationOptions& animation) {
- setScale(state.zoomScale(zoom), anchor, animation);
+ CameraOptions camera;
+ camera.zoom = zoom;
+ camera.anchor = anchor;
+ easeTo(camera, animation);
}
void Transform::setZoom(double zoom, const EdgeInsets& padding, const AnimationOptions& animation) {
- setScale(state.zoomScale(zoom), padding, animation);
-}
-
-double Transform::getZoom() const {
- return state.getZoom();
-}
-
-double Transform::getScale() const {
- return state.scale;
-}
-
-void Transform::setScale(double scale, const AnimationOptions& animation) {
- setScale(scale, optional<ScreenCoordinate> {}, animation);
-}
-
-void Transform::setScale(double scale, optional<ScreenCoordinate> anchor, const AnimationOptions& animation) {
- if (std::isnan(scale)) return;
CameraOptions camera;
- camera.zoom = state.scaleZoom(scale);
- camera.anchor = anchor;
+ camera.zoom = zoom;
+ if (!padding.isFlush()) camera.anchor = getScreenCoordinate(padding);
easeTo(camera, animation);
}
-void Transform::setScale(double scale, const EdgeInsets& padding, const AnimationOptions& animation) {
- optional<ScreenCoordinate> anchor;
- if (!padding.isFlush()) anchor = getScreenCoordinate(padding);
- setScale(scale, anchor, animation);
+double Transform::getZoom() const {
+ return state.getZoom();
}
#pragma mark - Bounds
diff --git a/src/mbgl/map/transform.hpp b/src/mbgl/map/transform.hpp
index 993f8f2c5f..2c59a6c1aa 100644
--- a/src/mbgl/map/transform.hpp
+++ b/src/mbgl/map/transform.hpp
@@ -65,26 +65,6 @@ public:
// Zoom
- /** Scales the map, keeping the given point fixed within the view.
- @param ds The difference in scale factors to scale the map by. */
- void scaleBy(double ds, const AnimationOptions& = {});
- /** Scales the map, keeping the given point fixed within the view.
- @param ds The difference in scale factors to scale the map by.
- @param anchor A point relative to the top-left corner of the view.
- If unspecified, the center point is fixed within the view. */
- void scaleBy(double ds, optional<ScreenCoordinate> anchor, const AnimationOptions& = {});
- /** Sets the scale factor, keeping the given point fixed within the view.
- @param scale The new scale factor. */
- void setScale(double scale, const AnimationOptions& = {});
- /** Sets the scale factor, keeping the given point fixed within the view.
- @param scale The new scale factor.
- @param anchor A point relative to the top-left corner of the view.
- If unspecified, the center point is fixed within the view. */
- void setScale(double scale, optional<ScreenCoordinate> anchor, const AnimationOptions& = {});
- /** Sets the scale factor, keeping the center point fixed within the inset view.
- @param scale The new scale factor.
- @param padding The viewport padding that affects the fixed center point. */
- void setScale(double scale, const EdgeInsets& padding, const AnimationOptions& = {});
/** Sets the zoom level, keeping the given point fixed within the view.
@param zoom The new zoom level. */
void setZoom(double zoom, const AnimationOptions& = {});
@@ -99,8 +79,6 @@ public:
void setZoom(double zoom, const EdgeInsets& padding, const AnimationOptions& = {});
/** Returns the zoom level. */
double getZoom() const;
- /** Returns the scale factor. */
- double getScale() const;
// Angle
diff --git a/src/mbgl/map/transform_state.cpp b/src/mbgl/map/transform_state.cpp
index f1c59533ae..fe90d4b2e4 100644
--- a/src/mbgl/map/transform_state.cpp
+++ b/src/mbgl/map/transform_state.cpp
@@ -136,10 +136,6 @@ double TransformState::getZoomFraction() const {
return getZoom() - getIntegerZoom();
}
-double TransformState::getScale() const {
- return scale;
-}
-
#pragma mark - Bounds
void TransformState::setLatLngBounds(const LatLngBounds& bounds_) {
diff --git a/src/mbgl/map/transform_state.hpp b/src/mbgl/map/transform_state.hpp
index 174aaa7ee6..85d5d96700 100644
--- a/src/mbgl/map/transform_state.hpp
+++ b/src/mbgl/map/transform_state.hpp
@@ -45,7 +45,6 @@ public:
double pixel_y() const;
// Zoom
- double getScale() const;
double getZoom() const;
int32_t getIntegerZoom() const;
double getZoomFraction() const;