Mercurial > hg > digilib
comparison client/digitallibrary/jquery/jquery.digilib.js @ 668:9f8056d6c289 jquery
transformation with mirror works now too!
author | robcast |
---|---|
date | Tue, 25 Jan 2011 22:04:27 +0100 |
parents | 1e9d7d92135c |
children | b2a1421572b5 |
comparison
equal
deleted
inserted
replaced
666:1e9d7d92135c | 668:9f8056d6c289 |
---|---|
784 } | 784 } |
785 return isVisible; | 785 return isVisible; |
786 }; | 786 }; |
787 | 787 |
788 // create Transform from area and $img | 788 // create Transform from area and $img |
789 var getImgTrafo = function ($img, area, data) { | 789 var getImgTrafo = function ($img, area, rot, hmir, vmir) { |
790 var picrect = geom.rectangle($img); | 790 var picrect = geom.rectangle($img); |
791 var trafo = geom.transform(); | 791 var trafo = geom.transform(); |
792 // zoom area offset | 792 // move zoom area offset to center |
793 trafo.concat(trafo.getTranslation(geom.position(-area.x, -area.y))); | 793 trafo.concat(trafo.getTranslation(geom.position(-area.x, -area.y))); |
794 // zoom area size | 794 // scale zoom area size to [1,1] |
795 trafo.concat(trafo.getScale(geom.size(1/area.width, 1/area.height))); | 795 trafo.concat(trafo.getScale(geom.size(1/area.width, 1/area.height))); |
796 // rotate (around transformed image center i.e. [0.5,0.5]) | 796 // rotate and mirror (around transformed image center i.e. [0.5,0.5]) |
797 if (data) { | 797 if (rot || hmir || vmir) { |
798 var rot = trafo.getRotationAround(parseFloat(data.settings.rot), | 798 // move [0.5,0.5] to center |
799 geom.position(0.5, 0.5)); | 799 trafo.concat(trafo.getTranslation(geom.position(-0.5, -0.5))); |
800 trafo.concat(rot); | 800 if (hmir) { |
801 // mirror about center | |
802 trafo.concat(trafo.getMirror('y')); | |
803 } | |
804 if (vmir) { | |
805 // mirror about center | |
806 trafo.concat(trafo.getMirror('x')); | |
807 } | |
808 if (rot) { | |
809 // rotate around center | |
810 trafo.concat(trafo.getRotation(parseFloat(rot))); | |
811 } | |
812 // move back | |
813 trafo.concat(trafo.getTranslation(geom.position(0.5, 0.5))); | |
801 } | 814 } |
802 // scale to screen position and size | 815 // scale to screen position and size |
803 trafo.concat(trafo.getScale(picrect)); | 816 trafo.concat(trafo.getScale(picrect)); |
804 trafo.concat(trafo.getTranslation(picrect)); | 817 trafo.concat(trafo.getTranslation(picrect)); |
805 return trafo; | 818 return trafo; |
809 var scalerImgLoadedHandler = function (data) { | 822 var scalerImgLoadedHandler = function (data) { |
810 var $img = data.$img; | 823 var $img = data.$img; |
811 return function () { | 824 return function () { |
812 console.debug("img loaded! this=", this, " data=", data); | 825 console.debug("img loaded! this=", this, " data=", data); |
813 // create Transform from current area and picsize | 826 // create Transform from current area and picsize |
814 data.imgTrafo = getImgTrafo($img, data.zoomArea, data); | 827 data.imgTrafo = getImgTrafo($img, data.zoomArea, |
828 data.settings.rot, data.scalerFlags.hmir, data.scalerFlags.vmir); | |
815 // display marks | 829 // display marks |
816 renderMarks(data); | 830 renderMarks(data); |
817 //digilib.showArrows(); // show arrow overlays for zoom navigation | 831 //digilib.showArrows(); // show arrow overlays for zoom navigation |
818 var $birdImg = data.$birdImg; | 832 var $birdImg = data.$birdImg; |
819 if ($birdImg) { | 833 if ($birdImg) { |