@@ -11,12 +11,12 @@ namespace conversion {
|
||||
std::optional<mbgl::style::Filter> toFilter(jni::JNIEnv& env, const jni::Array<jni::Object<>>& jfilter) {
|
||||
std::optional<mbgl::style::Filter> filter;
|
||||
if (jfilter) {
|
||||
mbgl::style::conversion::Error error;
|
||||
auto converted = mbgl::style::conversion::convert<mbgl::style::Filter>(Value(env, jfilter), error);
|
||||
if (!converted) {
|
||||
mbgl::Log::Error(mbgl::Event::JNI, "Error converting filter: " + error.message);
|
||||
}
|
||||
filter = std::move(*converted);
|
||||
mbgl::style::conversion::Error error;
|
||||
auto converted = mbgl::style::conversion::convert<mbgl::style::Filter>(Value(env, jfilter), error);
|
||||
if (!converted) {
|
||||
mbgl::Log::Error(mbgl::Event::JNI, "Error converting filter: " + error.message);
|
||||
}
|
||||
filter = std::move(*converted);
|
||||
}
|
||||
return filter;
|
||||
}
|
||||
|
||||
@@ -4,21 +4,24 @@ namespace mbgl {
|
||||
namespace android {
|
||||
namespace conversion {
|
||||
|
||||
Result<jni::Local<jni::Object<Position>>> Converter<jni::Local<jni::Object<Position>>, mbgl::style::Position>::operator()(jni::JNIEnv &env, const mbgl::style::Position &value) const {
|
||||
Result<jni::Local<jni::Object<Position>>>
|
||||
Converter<jni::Local<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 {
|
||||
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}};
|
||||
std::array<float, 3> cartPosition{{radialCoordinate, azimuthalAngle, polarAngle}};
|
||||
mbgl::style::Position position{};
|
||||
position.set(cartPosition);
|
||||
return position;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
} // namespace conversion
|
||||
} // namespace android
|
||||
} // namespace mbgl
|
||||
|
||||
@@ -20,6 +20,6 @@ struct Converter<mbgl::style::Position, jni::Object<Position>> {
|
||||
Result<mbgl::style::Position> operator()(jni::JNIEnv &env, const jni::Object<Position> &value) const;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
} // namespace conversion
|
||||
} // namespace android
|
||||
} // namespace mbgl
|
||||
|
||||
@@ -13,7 +13,8 @@ namespace conversion {
|
||||
|
||||
template <class T>
|
||||
struct Converter<jni::Local<jni::Object<android::gson::JsonElement>>, mbgl::style::PropertyExpression<T>> {
|
||||
Result<jni::Local<jni::Object<android::gson::JsonElement>>> operator()(jni::JNIEnv& env, const mbgl::style::PropertyExpression<T>& value) const {
|
||||
Result<jni::Local<jni::Object<android::gson::JsonElement>>> operator()(
|
||||
jni::JNIEnv& env, const mbgl::style::PropertyExpression<T>& value) const {
|
||||
return gson::JsonElement::New(env, value.getExpression().serialize());
|
||||
}
|
||||
};
|
||||
|
||||
@@ -17,7 +17,8 @@ namespace conversion {
|
||||
template <typename T>
|
||||
class PropertyValueEvaluator {
|
||||
public:
|
||||
PropertyValueEvaluator(jni::JNIEnv& _env) : env(_env) {}
|
||||
PropertyValueEvaluator(jni::JNIEnv& _env)
|
||||
: env(_env) {}
|
||||
|
||||
jni::Local<jni::Object<>> operator()(const mbgl::style::Undefined) const {
|
||||
return jni::Local<jni::Object<>>(env, nullptr);
|
||||
@@ -51,7 +52,8 @@ struct Converter<jni::Local<jni::Object<>>, mbgl::style::PropertyValue<T>> {
|
||||
*/
|
||||
template <>
|
||||
struct Converter<jni::Local<jni::Object<>>, mbgl::style::ColorRampPropertyValue> {
|
||||
Result<jni::Local<jni::Object<>>> operator()(jni::JNIEnv& env, const mbgl::style::ColorRampPropertyValue& value) const {
|
||||
Result<jni::Local<jni::Object<>>> operator()(jni::JNIEnv& env,
|
||||
const mbgl::style::ColorRampPropertyValue& value) const {
|
||||
PropertyValueEvaluator<mbgl::style::ColorRampPropertyValue> evaluator(env);
|
||||
return std::move(*convert<jni::Local<jni::Object<>>>(env, value.evaluate(evaluator)));
|
||||
}
|
||||
|
||||
@@ -4,14 +4,16 @@ namespace mbgl {
|
||||
namespace android {
|
||||
namespace conversion {
|
||||
|
||||
Result<jni::Local<jni::Object<TransitionOptions>>> Converter<jni::Local<jni::Object<TransitionOptions>>, mbgl::style::TransitionOptions>::operator()(jni::JNIEnv& env, const mbgl::style::TransitionOptions& value) const {
|
||||
return TransitionOptions::fromTransitionOptions(env,
|
||||
Result<jni::Local<jni::Object<TransitionOptions>>>
|
||||
Converter<jni::Local<jni::Object<TransitionOptions>>, mbgl::style::TransitionOptions>::operator()(
|
||||
jni::JNIEnv& env, const mbgl::style::TransitionOptions& value) const {
|
||||
return TransitionOptions::fromTransitionOptions(
|
||||
env,
|
||||
std::chrono::duration_cast<std::chrono::milliseconds>(value.duration.value_or(mbgl::Duration::zero())).count(),
|
||||
std::chrono::duration_cast<std::chrono::milliseconds>(value.delay.value_or(mbgl::Duration::zero())).count(),
|
||||
(jboolean) value.enablePlacementTransitions
|
||||
);
|
||||
(jboolean)value.enablePlacementTransitions);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
} // namespace conversion
|
||||
} // namespace android
|
||||
} // namespace mbgl
|
||||
|
||||
@@ -11,11 +11,12 @@ namespace mbgl {
|
||||
namespace android {
|
||||
namespace conversion {
|
||||
|
||||
template<>
|
||||
template <>
|
||||
struct Converter<jni::Local<jni::Object<TransitionOptions>>, mbgl::style::TransitionOptions> {
|
||||
Result<jni::Local<jni::Object<TransitionOptions>>> operator()(jni::JNIEnv&, const mbgl::style::TransitionOptions&) const;
|
||||
Result<jni::Local<jni::Object<TransitionOptions>>> operator()(jni::JNIEnv&,
|
||||
const mbgl::style::TransitionOptions&) const;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
} // namespace conversion
|
||||
} // namespace android
|
||||
} // namespace mbgl
|
||||
|
||||
@@ -20,11 +20,11 @@ variant<std::string, Tileset> convertURLOrTileset(mbgl::android::Value&& value)
|
||||
if (!tileset) {
|
||||
throw std::logic_error(error.message);
|
||||
}
|
||||
return { *tileset };
|
||||
return {*tileset};
|
||||
} else {
|
||||
return { *toString(convertible) };
|
||||
return {*toString(convertible)};
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
} // namespace android
|
||||
} // namespace mbgl
|
||||
|
||||
@@ -13,4 +13,4 @@ namespace android {
|
||||
variant<std::string, Tileset> convertURLOrTileset(mbgl::android::Value&& value);
|
||||
|
||||
}
|
||||
}
|
||||
} // namespace mbgl
|
||||
|
||||
Reference in New Issue
Block a user