[core] Organize Map::{move,pitch,scale,rotate}By

This commit is contained in:
Bruno de Oliveira Abinader
2019-03-01 10:14:07 +02:00
parent 586b22c0df
commit 74538406e9
2 changed files with 13 additions and 29 deletions

View File

@@ -68,20 +68,15 @@ public:
void jumpTo(const CameraOptions&);
void easeTo(const CameraOptions&, const AnimationOptions&);
void flyTo(const CameraOptions&, const AnimationOptions&);
void moveBy(const ScreenCoordinate&, const AnimationOptions& = {});
void scaleBy(double scale, optional<ScreenCoordinate> anchor, const AnimationOptions& animation = {});
void pitchBy(double pitch, const AnimationOptions& animation = {});
void rotateBy(const ScreenCoordinate& first, const ScreenCoordinate& second, const AnimationOptions& = {});
CameraOptions cameraForLatLngBounds(const LatLngBounds&, const EdgeInsets&, optional<double> bearing = {}, optional<double> pitch = {}) const;
CameraOptions cameraForLatLngs(const std::vector<LatLng>&, const EdgeInsets&, optional<double> bearing = {}, optional<double> pitch = {}) const;
CameraOptions cameraForGeometry(const Geometry<double>&, const EdgeInsets&, optional<double> bearing = {}, optional<double> pitch = {}) const;
LatLngBounds latLngBoundsForCamera(const CameraOptions&) const;
// Position
void moveBy(const ScreenCoordinate&, const AnimationOptions& = {});
// Zoom
void scaleBy(double scale, optional<ScreenCoordinate> anchor, const AnimationOptions& animation = {});
// Pitch
void pitchBy(double pitch, const AnimationOptions& animation = {});
// Bounds
void setLatLngBounds(optional<LatLngBounds>);
optional<LatLngBounds> getLatLngBounds() const;
@@ -94,9 +89,6 @@ public:
void setMaxPitch(double);
double getMaxPitch() const;
// Rotation
void rotateBy(const ScreenCoordinate& first, const ScreenCoordinate& second, const AnimationOptions& = {});
// North Orientation
void setNorthOrientation(NorthOrientation);
NorthOrientation getNorthOrientation() const;

View File

@@ -159,21 +159,27 @@ void Map::flyTo(const CameraOptions& camera, const AnimationOptions& animation)
impl->onUpdate();
}
#pragma mark - Position
void Map::moveBy(const ScreenCoordinate& point, const AnimationOptions& animation) {
impl->cameraMutated = true;
impl->transform.moveBy(point, animation);
impl->onUpdate();
}
#pragma mark - Zoom
void Map::pitchBy(double pitch, const AnimationOptions& animation) {
easeTo(CameraOptions().withPitch((impl->transform.getPitch() * util::RAD2DEG) - pitch), animation);
}
void Map::scaleBy(double scale, optional<ScreenCoordinate> anchor, const AnimationOptions& animation) {
const double zoom = impl->transform.getZoom() + impl->transform.getState().scaleZoom(scale);
easeTo(CameraOptions().withZoom(zoom).withAnchor(anchor), animation);
}
void Map::rotateBy(const ScreenCoordinate& first, const ScreenCoordinate& second, const AnimationOptions& animation) {
impl->cameraMutated = true;
impl->transform.rotateBy(first, second, animation);
impl->onUpdate();
}
CameraOptions Map::cameraForLatLngBounds(const LatLngBounds& bounds, const EdgeInsets& padding, optional<double> bearing, optional<double> pitch) const {
return cameraForLatLngs({
bounds.northwest(),
@@ -270,12 +276,6 @@ LatLngBounds Map::latLngBoundsForCamera(const CameraOptions& camera) const {
);
}
#pragma mark - Pitch
void Map::pitchBy(double pitch, const AnimationOptions& animation) {
easeTo(CameraOptions().withPitch((impl->transform.getPitch() * util::RAD2DEG) - pitch), animation);
}
#pragma mark - Bounds
optional<LatLngBounds> Map::getLatLngBounds() const {
@@ -343,14 +343,6 @@ Size Map::getSize() const {
return impl->transform.getState().getSize();
}
#pragma mark - Rotation
void Map::rotateBy(const ScreenCoordinate& first, const ScreenCoordinate& second, const AnimationOptions& animation) {
impl->cameraMutated = true;
impl->transform.rotateBy(first, second, animation);
impl->onUpdate();
}
#pragma mark - North Orientation
void Map::setNorthOrientation(NorthOrientation orientation) {