Optimaze with new mbed os for study

Dependencies:   TS_DISCO_F746NG BSP_DISCO_F746NG Graphics

Revision:
0:d8b9955d2b36
diff -r 000000000000 -r d8b9955d2b36 RadarDemo/Location.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/RadarDemo/Location.cpp	Fri Nov 04 01:02:37 2016 +0000
@@ -0,0 +1,90 @@
+//
+// Location.cpp
+//
+
+#include "Location.h"
+#include "math.h"
+#include "Commons.h"
+
+Location::Location()
+{
+    SetLocation(0,0,0);
+}
+
+Location::Location(float x, float y, float height)
+{
+    SetLocation(x, y, height);
+}
+
+void Location::SetLocation(float x, float y, float height)
+{
+    _x = x;
+    _y = y;
+    _h = height;
+
+    ToAngular();
+}
+
+void Location::SetLocationAngular(float distance, float azimuth, float elevation)
+{
+    _distance = distance;
+    _azimuth = azimuth;
+    _elevation = elevation;
+
+    ToCartesian();
+}
+
+float Location::GetX()
+{
+    return _x;
+}
+
+float Location::GetY()
+{
+    return _y;
+}
+
+float Location::GetHeight()
+{
+    return _h;
+}
+
+float Location::GetDistance()
+{
+    return _distance;
+}
+
+float Location::GetAzimuth()
+{
+    return _azimuth;
+}
+
+float Location::GetElevation()
+{
+    return _elevation;
+}
+
+void Location::ToAngular()
+{
+    _distance = (float)sqrt(_x * _x + _y * _y + _h * _h);
+    if (_distance > 0)
+    {
+        if (_x >= 0)
+            _azimuth = ((float)M_PI_2 - asinf(_y / _distance));
+        else
+            _azimuth = (float)(M_PI + M_PI_2 + asinf(_y / _distance));
+    }
+    else
+        _azimuth = 0.f;
+
+    _elevation = _distance > 0 ? asinf(_h / _distance) : 0.f;
+}
+
+void Location::ToCartesian()
+{
+    _x = _distance * sinf(_azimuth);
+    _y = _distance * cosf(_azimuth);
+    _h = _distance * sinf(_elevation);
+}
+
+