diff options
author | Daria Volvenkova <d.volvenkova@corp.mail.ru> | 2016-06-09 16:30:39 +0300 |
---|---|---|
committer | Daria Volvenkova <d.volvenkova@corp.mail.ru> | 2016-07-07 15:31:07 +0300 |
commit | 2ac8539d73b9502c5ca05b85f2a05c019f393a84 (patch) | |
tree | 2430a55b00ea26b1edbd7eb28d3b6297f65e6bb7 /drape_frontend | |
parent | c949c0c407bbd1742a03b7189ee42c59f03dcbae (diff) |
Calculate current rotation angle in perspective mode.
Diffstat (limited to 'drape_frontend')
-rwxr-xr-x | drape_frontend/frontend_renderer.cpp | 6 | ||||
-rw-r--r-- | drape_frontend/navigator.cpp | 4 | ||||
-rw-r--r-- | drape_frontend/rule_drawer.cpp | 4 |
3 files changed, 9 insertions, 5 deletions
diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp index 3b06a0adbf..9b826a08c7 100755 --- a/drape_frontend/frontend_renderer.cpp +++ b/drape_frontend/frontend_renderer.cpp @@ -1232,7 +1232,11 @@ void FrontendRenderer::RefreshModelView(ScreenBase const & screen) m_generalUniforms.SetMatrix4x4Value("modelView", mv.m_data); - float const zScale = 2.0f / (screen.GetHeight() * screen.GetScale()); + // TODO: Calculate exact value of zScale + double const averageScale3d = 3.0; + float const zScale = 2.0f / (screen.PixelRectIn3d().SizeY() * averageScale3d * screen.GetScale()); + //float const zScale = 2.0f / (screen.GetHeight() * screen.GetScale()); + m_generalUniforms.SetFloatValue("zScale", zScale); } diff --git a/drape_frontend/navigator.cpp b/drape_frontend/navigator.cpp index b68c595e37..a2e2034ec1 100644 --- a/drape_frontend/navigator.cpp +++ b/drape_frontend/navigator.cpp @@ -309,9 +309,9 @@ void Navigator::Disable3dMode() bool Navigator::UpdatePerspective() { - bool const isPerspective = m_Screen.isPerspective(); + double const maxPerspAngle = m_Screen.GetMaxRotationAngle(); m_Screen.UpdatePerspectiveParameters(); - return isPerspective != m_Screen.isPerspective(); + return maxPerspAngle != m_Screen.GetMaxRotationAngle(); } m2::AnyRectD ToRotated(Navigator const & navigator, m2::RectD const & rect) diff --git a/drape_frontend/rule_drawer.cpp b/drape_frontend/rule_drawer.cpp index a3b2ba949a..2a7a3a8102 100644 --- a/drape_frontend/rule_drawer.cpp +++ b/drape_frontend/rule_drawer.cpp @@ -203,10 +203,10 @@ void RuleDrawer::operator()(FeatureType const & f) double const lat = MercatorBounds::YToLat(featureCenter.y); m2::RectD rectMercator = MercatorBounds::MetresToXY(lon, lat, heightInMeters); - areaHeight = m2::PointD(rectMercator.SizeX(), rectMercator.SizeY()).Length(); + areaHeight = (rectMercator.SizeX() + rectMercator.SizeY()) / 2.0; rectMercator = MercatorBounds::MetresToXY(lon, lat, minHeigthInMeters); - areaMinHeight = m2::PointD(rectMercator.SizeX(), rectMercator.SizeY()).Length(); + areaMinHeight = (rectMercator.SizeX() + rectMercator.SizeY()) / 2.0; } bool applyPointStyle = s.PointStyleExists(); |