summaryrefslogtreecommitdiff
path: root/platform/android/src/style/conversion/position.cpp
blob: 9b3925914e00dd79b274a47d0acf37a5b21f5021 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "position.hpp"

namespace mbgl {
namespace android {
namespace conversion {

Result<jni::Object<Position>> Converter<jni::Object<Position>, mbgl::style::Position>::operator()(jni::JNIEnv &env, const mbgl::style::Position &value) const {
    std::array<float, 3> cartPosition = value.getSpherical();
    return Position::fromPosition(env, cartPosition[0], cartPosition[1], cartPosition[2]);
}

Result<mbgl::style::Position> Converter<mbgl::style::Position, jni::Object<Position>>::operator()(jni::JNIEnv &env, const jni::Object<Position> &value) const {
    float radialCoordinate = Position::getRadialCoordinate(env, value);
    float azimuthalAngle = Position::getAzimuthalAngle(env, value);
    float polarAngle = Position::getPolarAngle(env, value);
    std::array<float, 3> cartPosition {{radialCoordinate, azimuthalAngle, polarAngle}};
    mbgl::style::Position position{};
    position.set(cartPosition);
    return position;
}

}
}
}