summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Firebaugh <john.firebaugh@gmail.com>2014-07-21 11:19:47 -0700
committerJohn Firebaugh <john.firebaugh@gmail.com>2014-07-21 11:30:51 -0700
commit86336ed8383f408d8faf92b88267c8d7435394ce (patch)
tree9993191ddd0496a5f45bc09be0da2565e950d5ec
parentc76ef7700c5ef859e270562203cc1d9af2aea00c (diff)
downloadqtlocation-mapboxgl-86336ed8383f408d8faf92b88267c8d7435394ce.tar.gz
Flip name and units and sign of rotation API
Angle -> Bearing Radians -> Degrees Clockwise -> Counterclockwise
-rw-r--r--common/settings_json.cpp6
-rw-r--r--common/settings_json.hpp2
-rw-r--r--common/settings_nsuserdefaults.hpp2
-rw-r--r--common/settings_nsuserdefaults.mm8
-rw-r--r--include/mbgl/map/map.hpp6
-rw-r--r--linux/main.cpp4
-rw-r--r--macosx/main.mm4
-rw-r--r--src/map/map.cpp15
-rw-r--r--test/headless.cpp2
9 files changed, 26 insertions, 23 deletions
diff --git a/common/settings_json.cpp b/common/settings_json.cpp
index bceab50da6..f2f1248aa6 100644
--- a/common/settings_json.cpp
+++ b/common/settings_json.cpp
@@ -18,7 +18,7 @@ void Settings_JSON::load() {
longitude = document[rapidjson::SizeType(0)].GetDouble();
latitude = document[1].GetDouble();
zoom = document[2].GetDouble();
- angle = document[3].GetDouble();
+ bearing = document[3].GetDouble();
debug = document[4].GetBool();
}
}
@@ -32,7 +32,7 @@ void Settings_JSON::save() {
writer.Double(longitude);
writer.Double(latitude);
writer.Double(zoom);
- writer.Double(angle);
+ writer.Double(bearing);
writer.Bool(debug);
writer.EndArray();
}
@@ -41,6 +41,6 @@ void Settings_JSON::clear() {
longitude = 0;
latitude = 0;
zoom = 0;
- angle = 0;
+ bearing = 0;
debug = false;
}
diff --git a/common/settings_json.hpp b/common/settings_json.hpp
index 09f7841c91..25c2179ba0 100644
--- a/common/settings_json.hpp
+++ b/common/settings_json.hpp
@@ -14,7 +14,7 @@ public:
double longitude = 0;
double latitude = 0;
double zoom = 0;
- double angle = 0;
+ double bearing = 0;
bool debug = false;
};
diff --git a/common/settings_nsuserdefaults.hpp b/common/settings_nsuserdefaults.hpp
index dcc6ab46b9..3533e3da35 100644
--- a/common/settings_nsuserdefaults.hpp
+++ b/common/settings_nsuserdefaults.hpp
@@ -14,7 +14,7 @@ public:
double longitude = 0;
double latitude = 0;
double zoom = 0;
- double angle = 0;
+ double bearing = 0;
bool debug = false;
};
diff --git a/common/settings_nsuserdefaults.mm b/common/settings_nsuserdefaults.mm
index 24571677f4..dfc601bddb 100644
--- a/common/settings_nsuserdefaults.mm
+++ b/common/settings_nsuserdefaults.mm
@@ -9,7 +9,7 @@ Settings_NSUserDefaults::Settings_NSUserDefaults()
[[NSUserDefaults standardUserDefaults] registerDefaults:@{ @"longitude" : @(longitude),
@"latitude" : @(latitude),
@"zoom" : @(zoom),
- @"angle" : @(angle),
+ @"bearing" : @(bearing),
@"debug" : @(debug) }];
load();
}
@@ -21,7 +21,7 @@ void Settings_NSUserDefaults::load()
longitude = [settings[@"longitude"] doubleValue];
latitude = [settings[@"latitude"] doubleValue];
zoom = [settings[@"zoom"] doubleValue];
- angle = [settings[@"angle"] doubleValue];
+ bearing = [settings[@"bearing"] doubleValue];
debug = [settings[@"debug"] boolValue];
}
@@ -29,8 +29,8 @@ void Settings_NSUserDefaults::save()
{
[[NSUserDefaults standardUserDefaults] setValuesForKeysWithDictionary:@{ @"longitude" : @(longitude),
@"latitude" : @(latitude),
- @"zoom" : @(zoom),
- @"angle" : @(angle),
+ @"zoom" : @(zoom),
+ @"bearing" : @(bearing),
@"debug" : @(debug) }];
[[NSUserDefaults standardUserDefaults] synchronize];
}
diff --git a/include/mbgl/map/map.hpp b/include/mbgl/map/map.hpp
index 774e5e1292..78e7993db8 100644
--- a/include/mbgl/map/map.hpp
+++ b/include/mbgl/map/map.hpp
@@ -89,9 +89,9 @@ public:
// Rotation
void rotateBy(double sx, double sy, double ex, double ey, double duration = 0);
- void setAngle(double angle, double duration = 0);
- void setAngle(double angle, double cx, double cy);
- double getAngle() const;
+ void setBearing(double degrees, double duration = 0);
+ void setBearing(double degrees, double cx, double cy);
+ double getBearing() const;
void resetNorth();
void startRotating();
void stopRotating();
diff --git a/linux/main.cpp b/linux/main.cpp
index e603be55e4..d51d2c8846 100644
--- a/linux/main.cpp
+++ b/linux/main.cpp
@@ -60,7 +60,7 @@ int main(int argc, char *argv[]) {
// Load settings
mbgl::Settings_JSON settings;
map.setLonLatZoom(settings.longitude, settings.latitude, settings.zoom);
- map.setAngle(settings.angle);
+ map.setBearing(settings.bearing);
map.setDebug(settings.debug);
// Set access token if present
@@ -78,7 +78,7 @@ int main(int argc, char *argv[]) {
// Save settings
map.getLonLatZoom(settings.longitude, settings.latitude, settings.zoom);
- settings.angle = map.getAngle();
+ settings.bearing = map.getBearing();
settings.debug = map.getDebug();
settings.save();
diff --git a/macosx/main.mm b/macosx/main.mm
index da78f089c5..3df85a782a 100644
--- a/macosx/main.mm
+++ b/macosx/main.mm
@@ -13,7 +13,7 @@ int main() {
// Load settings
mbgl::Settings_NSUserDefaults settings;
map.setLonLatZoom(settings.longitude, settings.latitude, settings.zoom);
- map.setAngle(settings.angle);
+ map.setBearing(settings.bearing);
map.setDebug(settings.debug);
// Set access token if present
@@ -32,7 +32,7 @@ int main() {
// Save settings
map.getLonLatZoom(settings.longitude, settings.latitude, settings.zoom);
- settings.angle = map.getAngle();
+ settings.bearing = map.getBearing();
settings.debug = map.getDebug();
settings.save();
diff --git a/src/map/map.cpp b/src/map/map.cpp
index 1c3d01c180..ff76de8a5c 100644
--- a/src/map/map.cpp
+++ b/src/map/map.cpp
@@ -18,6 +18,9 @@
#include <memory>
#include <iostream>
+#define _USE_MATH_DEFINES
+#include <cmath>
+
using namespace mbgl;
Map::Map(View& view)
@@ -333,20 +336,20 @@ void Map::rotateBy(double sx, double sy, double ex, double ey, double duration)
}
// Note: This function is called from another thread. Make sure you only call threadsafe functions!
-void Map::setAngle(double angle, double duration) {
- transform.setAngle(angle, duration * 1_second);
+void Map::setBearing(double degrees, double duration) {
+ transform.setAngle(-degrees * M_PI / 180, duration * 1_second);
update();
}
// Note: This function is called from another thread. Make sure you only call threadsafe functions!
-void Map::setAngle(double angle, double cx, double cy) {
- transform.setAngle(angle, cx, cy);
+void Map::setBearing(double degrees, double cx, double cy) {
+ transform.setAngle(-degrees * M_PI / 180, cx, cy);
update();
}
// Note: This function is called from another thread. Make sure you only call threadsafe functions!
-double Map::getAngle() const {
- return transform.getAngle();
+double Map::getBearing() const {
+ return -transform.getAngle() / M_PI * 180;
}
// Note: This function is called from another thread. Make sure you only call threadsafe functions!
diff --git a/test/headless.cpp b/test/headless.cpp
index 18a17d6bdf..4838ca560c 100644
--- a/test/headless.cpp
+++ b/test/headless.cpp
@@ -74,7 +74,7 @@ TEST_P(HeadlessTest, render) {
view.resize(width, height);
map.resize(width, height);
map.setLonLatZoom(longitude, latitude, zoom);
- map.setAngle(bearing);
+ map.setBearing(bearing);
// Run the loop. It will terminate when we don't have any further listeners.
map.run();