Add additional transformState::latLngToScreenCoordinate getter (#16311)

This change adds a latLngToScreenCoordinate overload, to retrieve
the projected vec4 in additional to the ScreenCoordinate object,
that is useful to detect whether the projected latLng is in front
or behind the camera.
This commit is contained in:
galinelle
2020-03-19 18:53:09 +02:00
committed by GitHub
parent f3cf855894
commit bc45d65c58
3 changed files with 17 additions and 2 deletions

View File

@@ -130,6 +130,16 @@ TEST(Transform, PerspectiveProjection) {
point = transform.getState().latLngToScreenCoordinate({37.692872969426375, -76.75823239205641});
ASSERT_NEAR(point.x, 1000.0, 1e-5);
ASSERT_NEAR(point.y, 0.0, 1e-4);
mbgl::vec4 p;
point = transform.getState().latLngToScreenCoordinate({37.692872969426375, -76.75823239205641}, p);
ASSERT_NEAR(point.x, 1000.0, 1e-5);
ASSERT_NEAR(point.y, 0.0, 1e-4);
ASSERT_GT(p[3], 0.0);
transform.jumpTo(CameraOptions().withCenter(LatLng{38.0, -77.0}).withZoom(18.0).withPitch(51.56620156));
point = transform.getState().latLngToScreenCoordinate({7.692872969426375, -76.75823239205641}, p);
ASSERT_LT(p[3], 0.0);
}
TEST(Transform, UnwrappedLatLng) {