[Marble-devel] Review Request 118751: Spherical interpolation methods in GeoDataCoordinates

Dennis Nienhüser earthwings at gentoo.org
Sun Jun 15 06:53:39 UTC 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/118751/
-----------------------------------------------------------

(Updated June 15, 2014, 6:53 a.m.)


Review request for Marble and Torsten Rahn.


Changes
-------

Rename slerp and squad to interpolate


Repository: marble


Description
-------

- adds a method slerp() to GeoDataCoordinates for spherical linear interpolation. Merely a convenience one for the existing Quaternion::slerp()
- adds a method squad() to GeoDataCoordinates for spherical spline interpolation. Based on the work of Ken Shoemake, implemented according to Erik B. Dam, Martin Koch, Martin Lillholm. Quaternions, Interpolation and Animation, page 51, http://web.mit.edu/2.998/www/QuaternionReport1.pdf
- adds an example in examples/cpp/squad-interpolation which picks nearby cities from Marble's internal city database at random and interpolates paths between them. See screenshot and the video at http://nienhueser.de/marble/marble-squad-interpolation.html (plays in your browser)

squad will become useful to animate the camera path in KML Tour playback.

Food for thoughts/discussion:
- Is the current signature GeoDataCoordinates::squad(GC a, b, c, double t) better than a static one GeoDataCoordinates::squad(GC a, b, c, d, double t)?
- Shall we move it elsewhere? Imho GeoDataCoordinates is a better fit than e.g. MarblePhysics or GeoDataLineString


Diffs (updated)
-----

  src/lib/marble/geodata/data/GeoDataCoordinates_p.h 2d81e5e 
  examples/cpp/CMakeLists.txt f7075cc 
  examples/cpp/squad-interpolation/CMakeLists.txt PRE-CREATION 
  examples/cpp/squad-interpolation/squad-interpolation.h PRE-CREATION 
  examples/cpp/squad-interpolation/squad-interpolation.cpp PRE-CREATION 
  src/lib/marble/geodata/data/GeoDataCoordinates.h 89fba28 
  src/lib/marble/geodata/data/GeoDataCoordinates.cpp 2d2c117 

Diff: https://git.reviewboard.kde.org/r/118751/diff/


Testing
-------


File Attachments
----------------

squad example
  https://git.reviewboard.kde.org/media/uploaded/files/2014/06/14/2c98d4b4-129f-4da6-905e-a5b0eb938aa4__marble-squad-interpolation-1.png


Thanks,

Dennis Nienhüser

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


More information about the Marble-devel mailing list