diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2017-02-06 13:20:15 +0200 |
---|---|---|
committer | Tobrun <tobrun.van.nuland@gmail.com> | 2017-02-10 21:15:18 +0100 |
commit | 2fc070ca9995bf4ceb4599ce7a94bee7a03b10b4 (patch) | |
tree | 4941842058cfddbc87b0c989d7b572ad6cc821fa /platform/android/src/annotation/polyline.cpp | |
parent | 35b810dd6ddfc5e6f1a635b2682b3add5ec5d5bb (diff) | |
download | qtlocation-mapboxgl-upstream/ivovandongen-gl-sv.tar.gz |
[android] native map view refactoringupstream/ivovandongen-gl-sv
Diffstat (limited to 'platform/android/src/annotation/polyline.cpp')
-rw-r--r-- | platform/android/src/annotation/polyline.cpp | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/platform/android/src/annotation/polyline.cpp b/platform/android/src/annotation/polyline.cpp new file mode 100644 index 0000000000..3723dc1871 --- /dev/null +++ b/platform/android/src/annotation/polyline.cpp @@ -0,0 +1,49 @@ +#include "polyline.hpp" + +#include "../conversion/color.hpp" + +namespace mbgl { +namespace android { + +jni::Class<Polyline> Polyline::javaClass; + +mbgl::LineAnnotation Polyline::toAnnotation(jni::JNIEnv& env, jni::Object<Polyline> polyline) { + auto points = Polyline::getPoints(env, polyline); + + mbgl::LineAnnotation annotation { MultiPoint::toGeometry<mbgl::LineString<double>>(env, points) }; + annotation.opacity = { Polyline::getOpacity(env, polyline) }; + annotation.color = { Polyline::getColor(env, polyline) }; + annotation.width = { Polyline::getWidth(env, polyline) }; + + jni::DeleteLocalRef(env, points); + + return annotation; +} + +jni::Object<java::util::List> Polyline::getPoints(jni::JNIEnv& env, jni::Object<Polyline> polyline) { + static auto field = Polyline::javaClass.GetField<jni::Object<java::util::List>>(env, "points"); + return polyline.Get(env, field); +} + +float Polyline::getOpacity(jni::JNIEnv& env, jni::Object<Polyline> polyline) { + static auto field = Polyline::javaClass.GetField<float>(env, "alpha"); + return polyline.Get(env, field); +} + +mbgl::Color Polyline::getColor(jni::JNIEnv& env, jni::Object<Polyline> polyline) { + static auto field = Polyline::javaClass.GetField<int>(env, "color"); + return *conversion::convert<mbgl::Color, int>(env, polyline.Get(env, field)); +} + +float Polyline::getWidth(jni::JNIEnv& env, jni::Object<Polyline> polyline) { + static auto field = Polyline::javaClass.GetField<float>(env, "width"); + return polyline.Get(env, field); +} + +void Polyline::registerNative(jni::JNIEnv& env) { + Polyline::javaClass = *jni::Class<Polyline>::Find(env).NewGlobalRef(env).release(); +} + + +} // namespace android +} // namespace mbgl
\ No newline at end of file |