[Marble-devel] Review Request: Double click zooms in, generalized animations, GeoDataLookAt to change observer position

Dennis Nienhüser earthwings at gentoo.org
Mon Jan 25 18:39:39 CET 2010


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

(Updated 2010-01-25 17:39:39.831925)


Review request for marble.


Changes
-------

- Changed qreal distance(int) to qreal distanceFromRadius(qreal), int radius(qreal) to qreal radiusFromDistance(qreal). Changed zoomFromDistance and distanceFromZoom to use qreal everywhere as well to ease a later transition to qreal radius/zoom values (to avoid loss of precision during conversions). Didn't change the existing public int distance() etc. to keep the interface atm.
- Added METER2KM and KM2METER constants in global.h and used them where * 1000 or / 1000 was used before
- Renamed animationFinished slot to startStillMode


Summary
-------

- Default input handler reacts to double click and zooms in (centering the mouse position)
- Introduces the GeoDataLookAt object as a possibility to change the camera view (observer) in MarbleMap and MarbleWidget
- Adds FlyToMode enum to generalize the existing Jump animation
- Extends existing Jump to support source and target with different altitudes. Altitude changed according to travel distance to avoid very high jumps when only moving a short distance
- Adds Linear interpolation as another animation
- Adds flyTo methods to change camera view point
- Adds FlyToMode parameter to existing zoom/pan actions. Those already having a bool animate are unchanged and set FlyToMode=Automatic/Instant internally
- Some cleanup here and there


This addresses bug 168744.
    https://bugs.kde.org/show_bug.cgi?id=168744


Diffs (updated)
-----

  /trunk/KDE/kdeedu/marble/src/lib/MarbleControlBox.cpp 1080101 
  /trunk/KDE/kdeedu/marble/src/lib/MarbleMap.h 1080101 
  /trunk/KDE/kdeedu/marble/src/lib/MarbleMap.cpp 1080101 
  /trunk/KDE/kdeedu/marble/src/lib/MarbleMap_p.h 1080101 
  /trunk/KDE/kdeedu/marble/src/lib/MarblePhysics.h 1080101 
  /trunk/KDE/kdeedu/marble/src/lib/MarblePhysics.cpp 1080101 
  /trunk/KDE/kdeedu/marble/src/lib/MarbleWidget.h 1080101 
  /trunk/KDE/kdeedu/marble/src/lib/MarbleWidget.cpp 1080101 
  /trunk/KDE/kdeedu/marble/src/lib/MarbleWidgetInputHandler.h 1080101 
  /trunk/KDE/kdeedu/marble/src/lib/MarbleWidgetInputHandler.cpp 1080101 
  /trunk/KDE/kdeedu/marble/src/lib/global.h 1080101 

Diff: http://reviewboard.kde.org/r/2672/diff


Testing
-------

KDE and Qt Version, both with animations enabled and disabled.

Expected behavior:
  In non-animated mode: As before, except that double click centers on the mouse position and zooms in.
  In animated mode:
    - Linear animation for wheel zoom actions
    - Jump animation for double click
    - Jump animation when moving to a target not visible on the screen yet
    - Linear animation when moving to a target visible on the screen at the same height
    - Jump animation when moving to a target visible on the screen at a different height (except wheel zoom)
    - Control box zoom and pan buttons as well as keyboard events for zooming and panning are animated
    - Jump animations for "go home" and places selected (unless visible on screen and at the same height, see above)


Thanks,

Dennis



More information about the Marble-devel mailing list