maplibre support for Qt6 and MSVC 2019 (#125)

* [qt] Updating CMake project files for Qt6

* [qt] Updating non-test projects for Qt6 and msvc2019

* [qt] Test fixes for Qt6 and msvc2019

* [qt] Link whole test archive for Qt and msvc2019

* [qt] Fixing Qt6 headless backend renderer

* [qt] Fixes for test failures

* [qt] Expression and style parser test fixes

* [qt] Backwards compatibility with Qt5 and Qt6

Minimum version is Qt 5.4 due to use of QOpenGLWidget

* [qt] LLVM is no longer required for a Windows build

* [msvc] msvc2019 fixes for maplibre

* Update test/storage/offline_database.test.cpp

Co-authored-by: Tadej Novak <tadej@tano.si>

* Vector + const is not standard C++

Co-authored-by: Tadej Novak <tadej@tano.si>
This commit is contained in:
Dan Paulat
2021-08-07 10:10:45 -05:00
committed by GitHub
parent 1eee73bdce
commit 8b804a1903
51 changed files with 406 additions and 213 deletions

View File

@@ -874,7 +874,7 @@ TEST(Transform, MinMaxPitch) {
static const double abs_double_error = 1e-5;
MATCHER_P(Vec3NearEquals, vec, "") {
MATCHER_P(Vec3NearEquals1E5, vec, "") {
return std::fabs(vec[0] - arg[0]) <= abs_double_error && std::fabs(vec[1] - arg[1]) <= abs_double_error &&
std::fabs(vec[2] - arg[2]) <= abs_double_error;
}
@@ -895,7 +895,7 @@ TEST(Transform, FreeCameraOptionsInvalidSize) {
EXPECT_DOUBLE_EQ(0.0, updatedOrientation[2]);
EXPECT_DOUBLE_EQ(1.0, updatedOrientation[3]);
EXPECT_THAT(updatedPosition, Vec3NearEquals(vec3{{0.0, 0.0, 0.0}}));
EXPECT_THAT(updatedPosition, Vec3NearEquals1E5(vec3{{0.0, 0.0, 0.0}}));
}
TEST(Transform, FreeCameraOptionsNanInput) {
@@ -914,7 +914,7 @@ TEST(Transform, FreeCameraOptionsNanInput) {
options.position = vec3{{0.3, 0.1, 0.2}};
options.orientation = vec4{{NAN, 0.0, NAN, 0.0}};
transform.setFreeCameraOptions(options);
EXPECT_THAT(transform.getFreeCameraOptions().position.value(), Vec3NearEquals(vec3{{0.3, 0.1, 0.2}}));
EXPECT_THAT(transform.getFreeCameraOptions().position.value(), Vec3NearEquals1E5(vec3{{0.3, 0.1, 0.2}}));
EXPECT_EQ(Quaternion::identity.m, transform.getFreeCameraOptions().orientation.value());
}
@@ -1008,9 +1008,9 @@ TEST(Transform, FreeCameraOptionsClampPitch) {
transform.setFreeCameraOptions(options);
EXPECT_DOUBLE_EQ(util::PITCH_MAX, transform.getState().getPitch());
std::tie(right, up, forward) = rotatedFrame(transform.getFreeCameraOptions().orientation.value());
EXPECT_THAT(right, Vec3NearEquals(vec3{{1.0, 0.0, 0.0}}));
EXPECT_THAT(up, Vec3NearEquals(vec3{{0, -0.5, 0.866025}}));
EXPECT_THAT(forward, Vec3NearEquals(vec3{{0, -0.866025, -0.5}}));
EXPECT_THAT(right, Vec3NearEquals1E5(vec3{{1.0, 0.0, 0.0}}));
EXPECT_THAT(up, Vec3NearEquals1E5(vec3{{0, -0.5, 0.866025}}));
EXPECT_THAT(forward, Vec3NearEquals1E5(vec3{{0, -0.866025, -0.5}}));
}
TEST(Transform, FreeCameraOptionsClampToBounds) {
@@ -1034,10 +1034,10 @@ TEST(Transform, FreeCameraOptionsClampToBounds) {
vec3 right, up, forward;
std::tie(right, up, forward) = rotatedFrame(transform.getFreeCameraOptions().orientation.value());
EXPECT_THAT(transform.getFreeCameraOptions().position.value(),
Vec3NearEquals(vec3{{0.0976562, 0.304816, 0.20716}}));
EXPECT_THAT(right, Vec3NearEquals(vec3{{1.0, 0.0, 0.0}}));
EXPECT_THAT(up, Vec3NearEquals(vec3{{0, -0.707107, 0.707107}}));
EXPECT_THAT(forward, Vec3NearEquals(vec3{{0, -0.707107, -0.707107}}));
Vec3NearEquals1E5(vec3{{0.0976562, 0.304816, 0.20716}}));
EXPECT_THAT(right, Vec3NearEquals1E5(vec3{{1.0, 0.0, 0.0}}));
EXPECT_THAT(up, Vec3NearEquals1E5(vec3{{0, -0.707107, 0.707107}}));
EXPECT_THAT(forward, Vec3NearEquals1E5(vec3{{0, -0.707107, -0.707107}}));
}
TEST(Transform, FreeCameraOptionsInvalidState) {
@@ -1050,7 +1050,7 @@ TEST(Transform, FreeCameraOptionsInvalidState) {
EXPECT_DOUBLE_EQ(0.0, transform.getState().getPitch());
const auto options = transform.getFreeCameraOptions();
EXPECT_THAT(options.position.value(), Vec3NearEquals(vec3{{0.0, 0.0, 0.0}}));
EXPECT_THAT(options.position.value(), Vec3NearEquals1E5(vec3{{0.0, 0.0, 0.0}}));
}
TEST(Transform, FreeCameraOptionsOrientationRoll) {
@@ -1083,31 +1083,31 @@ TEST(Transform, FreeCameraOptionsStateSynchronization) {
transform.jumpTo(CameraOptions().withPitch(0.0).withBearing(0.0));
std::tie(right, up, forward) = rotatedFrame(transform.getFreeCameraOptions().orientation.value());
EXPECT_THAT(transform.getFreeCameraOptions().position.value(), Vec3NearEquals(vec3{{0.5, 0.5, 0.29296875}}));
EXPECT_THAT(right, Vec3NearEquals(vec3{{1.0, 0.0, 0.0}}));
EXPECT_THAT(up, Vec3NearEquals(vec3{{0.0, -1.0, 0.0}}));
EXPECT_THAT(forward, Vec3NearEquals(vec3{{0.0, 0.0, -1.0}}));
EXPECT_THAT(transform.getFreeCameraOptions().position.value(), Vec3NearEquals1E5(vec3{{0.5, 0.5, 0.29296875}}));
EXPECT_THAT(right, Vec3NearEquals1E5(vec3{{1.0, 0.0, 0.0}}));
EXPECT_THAT(up, Vec3NearEquals1E5(vec3{{0.0, -1.0, 0.0}}));
EXPECT_THAT(forward, Vec3NearEquals1E5(vec3{{0.0, 0.0, -1.0}}));
transform.jumpTo(CameraOptions().withCenter(LatLng{60.1699, 24.9384}));
EXPECT_THAT(transform.getFreeCameraOptions().position.value(),
Vec3NearEquals(vec3{{0.569273, 0.289453, 0.292969}}));
Vec3NearEquals1E5(vec3{{0.569273, 0.289453, 0.292969}}));
transform.jumpTo(CameraOptions().withPitch(20.0).withBearing(77.0).withCenter(LatLng{-20.0, 20.0}));
EXPECT_THAT(transform.getFreeCameraOptions().position.value(), Vec3NearEquals(vec3{{0.457922, 0.57926, 0.275301}}));
EXPECT_THAT(transform.getFreeCameraOptions().position.value(), Vec3NearEquals1E5(vec3{{0.457922, 0.57926, 0.275301}}));
// Invalid pitch
transform.jumpTo(CameraOptions().withPitch(-10.0).withBearing(0.0));
std::tie(right, up, forward) = rotatedFrame(transform.getFreeCameraOptions().orientation.value());
EXPECT_THAT(transform.getFreeCameraOptions().position.value(),
Vec3NearEquals(vec3{{0.555556, 0.556719, 0.292969}}));
EXPECT_THAT(right, Vec3NearEquals(vec3{{1.0, 0.0, 0.0}}));
EXPECT_THAT(up, Vec3NearEquals(vec3{{0.0, -1.0, 0.0}}));
EXPECT_THAT(forward, Vec3NearEquals(vec3{{0.0, 0.0, -1.0}}));
Vec3NearEquals1E5(vec3{{0.555556, 0.556719, 0.292969}}));
EXPECT_THAT(right, Vec3NearEquals1E5(vec3{{1.0, 0.0, 0.0}}));
EXPECT_THAT(up, Vec3NearEquals1E5(vec3{{0.0, -1.0, 0.0}}));
EXPECT_THAT(forward, Vec3NearEquals1E5(vec3{{0.0, 0.0, -1.0}}));
transform.jumpTo(CameraOptions().withPitch(85.0).withBearing(0.0).withCenter(LatLng{-80.0, 0.0}));
std::tie(right, up, forward) = rotatedFrame(transform.getFreeCameraOptions().orientation.value());
EXPECT_THAT(transform.getFreeCameraOptions().position.value(), Vec3NearEquals(vec3{{0.5, 1.14146, 0.146484}}));
EXPECT_THAT(right, Vec3NearEquals(vec3{{1.0, 0.0, 0.0}}));
EXPECT_THAT(up, Vec3NearEquals(vec3{{0, -0.5, 0.866025}}));
EXPECT_THAT(forward, Vec3NearEquals(vec3{{0, -0.866025, -0.5}}));
EXPECT_THAT(transform.getFreeCameraOptions().position.value(), Vec3NearEquals1E5(vec3{{0.5, 1.14146, 0.146484}}));
EXPECT_THAT(right, Vec3NearEquals1E5(vec3{{1.0, 0.0, 0.0}}));
EXPECT_THAT(up, Vec3NearEquals1E5(vec3{{0, -0.5, 0.866025}}));
EXPECT_THAT(forward, Vec3NearEquals1E5(vec3{{0, -0.866025, -0.5}}));
}