X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=mussa.git;a=blobdiff_plain;f=alg%2Fglseqbrowser.hpp;h=f88caf5e7e5bb57e4dea0b1ff56f20d4f8c21408;hp=3e7510770d485c4d3701b8689242583ef5f907e8;hb=1498ea34399110d081cd06cb8eefb8950e2312c7;hpb=a4afd5d6682accf2e2d0f414fb2e16813786eff3 diff --git a/alg/glseqbrowser.hpp b/alg/glseqbrowser.hpp index 3e75107..f88caf5 100644 --- a/alg/glseqbrowser.hpp +++ b/alg/glseqbrowser.hpp @@ -57,6 +57,11 @@ public: int viewportPixelHeight() const; //! return viewport width in pixels int viewportPixelWidth() const; + + //! convert x axis from display to world coordinates + float viewportXtoWorldX(int x); + //! convert y axis from display to world coordinates + float viewportYtoWorldY(int y); //! zoom out far enough to show the full size of the sequence double zoomOut(); @@ -227,4 +232,15 @@ protected: std::list selected_tracks; typedef std::list::iterator selected_track_iterator; }; + +inline float GlSeqBrowser::viewportXtoWorldX(int x) { + GLfloat x_scale = cur_ortho.width()/((float)viewport_size.x); + return (cur_ortho.left + (x * x_scale)); +} + +inline float GlSeqBrowser::viewportYtoWorldY(int y) { + GLfloat y_scale = cur_ortho.height()/((float)viewport_size.y); + return cur_ortho.top-(y * y_scale); +} + #endif