Mercurial > hg > orthanc-stone
comparison Framework/Scene2D/PanSceneTracker.cpp @ 728:8190213e2279 am-dev
Merged default into am-dev
author | Alain Mazy <am@osimis.io> |
---|---|
date | Tue, 21 May 2019 13:25:58 +0200 |
parents | 059e1fd05fd6 |
children | c0fcb2757b0a |
comparison
equal
deleted
inserted
replaced
690:f185cfcb72a0 | 728:8190213e2279 |
---|---|
18 * along with this program. If not, see <http://www.gnu.org/licenses/>. | 18 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
19 **/ | 19 **/ |
20 | 20 |
21 | 21 |
22 #include "PanSceneTracker.h" | 22 #include "PanSceneTracker.h" |
23 #include <Framework/Scene2DViewport/ViewportController.h> | |
23 | 24 |
24 namespace OrthancStone | 25 namespace OrthancStone |
25 { | 26 { |
26 PanSceneTracker::PanSceneTracker(Scene2D& scene, | 27 PanSceneTracker::PanSceneTracker(ViewportControllerWPtr controllerW, |
27 const PointerEvent& event) : | 28 const PointerEvent& event) |
28 scene_(scene), | 29 : OneGesturePointerTracker(controllerW) |
29 originalSceneToCanvas_(scene_.GetSceneToCanvasTransform()), | 30 , originalSceneToCanvas_(GetController()->GetSceneToCanvasTransform()) |
30 originalCanvasToScene_(scene_.GetCanvasToSceneTransform()) | 31 , originalCanvasToScene_(GetController()->GetCanvasToSceneTransform()) |
31 { | 32 { |
32 pivot_ = event.GetMainPosition().Apply(originalCanvasToScene_); | 33 pivot_ = event.GetMainPosition().Apply(originalCanvasToScene_); |
33 } | 34 } |
34 | 35 |
35 | 36 |
36 void PanSceneTracker::Update(const PointerEvent& event) | 37 void PanSceneTracker::PointerMove(const PointerEvent& event) |
37 { | 38 { |
38 ScenePoint2D p = event.GetMainPosition().Apply(originalCanvasToScene_); | 39 ScenePoint2D p = event.GetMainPosition().Apply(originalCanvasToScene_); |
39 | 40 |
40 scene_.SetSceneToCanvasTransform( | 41 GetController()->SetSceneToCanvasTransform( |
41 AffineTransform2D::Combine( | 42 AffineTransform2D::Combine( |
42 originalSceneToCanvas_, | 43 originalSceneToCanvas_, |
43 AffineTransform2D::CreateOffset(p.GetX() - pivot_.GetX(), | 44 AffineTransform2D::CreateOffset(p.GetX() - pivot_.GetX(), |
44 p.GetY() - pivot_.GetY()))); | 45 p.GetY() - pivot_.GetY()))); |
45 } | 46 } |
47 | |
48 void PanSceneTracker::Cancel() | |
49 { | |
50 GetController()->SetSceneToCanvasTransform(originalSceneToCanvas_); | |
51 } | |
52 | |
46 } | 53 } |