[Marble-devel] Review Request 110058: Spherical Projection Panning

Paul Nader paul.nader at gmail.com
Wed May 15 00:39:05 UTC 2013



> On April 28, 2013, 2:50 p.m., Bernhard Beschow wrote:
> > src/lib/RenderPlugin.cpp, line 41
> > <http://git.reviewboard.kde.org/r/110058/diff/5/?file=139648#file139648line41>
> >
> >     I think this attribute (and any code depending on it) can be avoided by fixing AbstractFloatItem in just one place. Try to surround paintEvent(...) in AbstractFloatItem::render() with:
> >     
> >     painter->save();
> >     painter->translate( -viewport->pan() );
> >     
> >     paintEvent(...);
> >     
> >     painter->restore();
> 
> Bernhard Beschow wrote:
>     In fact it seems to me that you could remove all QPainter::translate() calls and all code related to LayerInterface/RenderPlugin::stationary() if you adapted all methods in SphericalProjection. Perhaps it's even sufficient to only adapt the projection classes to get everything rendered correctly.
>     
>     One issue I currently see, however, is that the crosshairs don't indicate the center of the map. This results in the map shifting if pan != 0 and the map is zoomed in or out.
> 
> Paul Nader wrote:
>     "In fact it seems to me that you could remove all QPainter::translate() calls and all code related to LayerInterface/RenderPlugin::stationary() if you adapted all methods in SphericalProjection. Perhaps it's even sufficient to only adapt the projection classes to get everything rendered correctly."
>     
>     I don't think this is correct as there are render plugins which draw independent of the projection. For example the graticule and APRS plugins draw their own artifacts and hence the painter needs to be translated.
>     
>     "One issue I currently see, however, is that the crosshairs don't indicate the center of the map. This results in the map shifting if pan != 0 and the map is zoomed in or out."
>     
>     True. I believe the crosshairs now show the point on the globe closest to the viewer. This would have also been the case before when the globe was centered and it always happened to be the point at the center of the screen. Now as the globe is panned the closest point is no longer the center of the screen. I would like to avoid shifting the map when panning if possible. Any sggestions?

Last sentence should read " avoid shifting the map when zooming".

So just to clarify, is this an issue when zooming using just the keyboard? With the mouse my understanding is that the map follows the pointer. Is that incorrect?


- Paul


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/110058/#review31699
-----------------------------------------------------------


On May 15, 2013, 12:12 a.m., Paul Nader wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/110058/
> -----------------------------------------------------------
> 
> (Updated May 15, 2013, 12:12 a.m.)
> 
> 
> Review request for Marble, Bernhard Beschow and Dennis Nienhüser.
> 
> 
> Description
> -------
> 
> Translates the scene viewpoint in a plane orthogonal to the line of sight of the viewer.
> 
> Version    Changes
> -------+-----------------------------------------------------------------
>    r6      Routing Layer now working :)
>            Reverted back to rendering while panning
>            Better overall FPS rate
>            Globe rotation adjusted while panning
>            Support for panning using keyboard and arrow disk widget arrows.
>            Bugfixes: https://github.com/oberluz/marble
> 
> 
> Diffs
> -----
> 
>   src/QtMainWindow.cpp 50a4676 
>   src/lib/AbstractDataPlugin.cpp 347f4b1 
>   src/lib/GoToDialog.cpp 57b65de 
>   src/lib/LayerInterface.h 46a20da 
>   src/lib/LayerInterface.cpp c3629de 
>   src/lib/LayerManager.cpp 0df19d2 
>   src/lib/MapInfoDialog.cpp 5219983 
>   src/lib/MarbleModel.h 44a5f61 
>   src/lib/MarbleModel.cpp a84ccae 
>   src/lib/MarbleWidget.h 9203250 
>   src/lib/MarbleWidget.cpp 3b5e844 
>   src/lib/MarbleWidgetInputHandler.cpp 1bdba92 
>   src/lib/PopupItem.cpp 20391fc 
>   src/lib/Projections/SphericalProjection.cpp cebb73d 
>   src/lib/RenderPlugin.h 90355ed 
>   src/lib/RenderPlugin.cpp b9b95c9 
>   src/lib/ScanlineTextureMapperContext.cpp ff3197b 
>   src/lib/SphericalScanlineTextureMapper.h 85ee814 
>   src/lib/SphericalScanlineTextureMapper.cpp 0bfe09c 
>   src/lib/TextureColorizer.cpp 5319c21 
>   src/lib/VectorMap.cpp cf3dcef 
>   src/lib/ViewportParams.h 6b97f55 
>   src/lib/ViewportParams.cpp f82a8b7 
>   src/lib/layers/VectorMapLayer.cpp f05c88a 
>   src/lib/routing/RoutingInputWidget.cpp 28db48d 
>   src/lib/routing/RoutingLayer.cpp 125990d 
>   src/plugins/render/aprs/AprsPlugin.cpp 550192f 
>   src/plugins/render/atmosphere/AtmospherePlugin.cpp 492c111 
>   src/plugins/render/earthquake/EarthquakePlugin.cpp 1205521 
>   src/plugins/render/navigation/ArrowDiscWidget.h 77e5cdd 
>   src/plugins/render/navigation/ArrowDiscWidget.cpp ee81025 
>   src/plugins/render/opencachingcom/OpenCachingComPlugin.cpp 576198f 
>   src/plugins/render/opendesktop/OpenDesktopPlugin.cpp b1cef50 
>   src/plugins/render/photo/PhotoPlugin.cpp cdb6243 
>   src/plugins/render/postalcode/PostalCodePlugin.cpp 87feacd 
>   src/plugins/render/stars/StarsPlugin.cpp d8d1a08 
>   src/plugins/render/weather/WeatherPlugin.cpp 4be0c5d 
>   src/plugins/render/wikipedia/WikipediaPlugin.cpp 89cf51e 
> 
> Diff: http://git.reviewboard.kde.org/r/110058/diff/
> 
> 
> Testing
> -------
> 
> Ubuntu 11.40 32-bit / Qt 4.8.1
> 
> 
> File Attachments
> ----------------
> 
> Panned
>   http://git.reviewboard.kde.org/media/uploaded/files/2013/04/16/17._Satellites.png
> Design Notes
>   http://git.reviewboard.kde.org/media/uploaded/files/2013/05/15/Design_Notes.txt
> 
> 
> Thanks,
> 
> Paul Nader
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/marble-devel/attachments/20130515/cb04a64d/attachment-0001.html>


More information about the Marble-devel mailing list