Mercurial > hg > orthanc-stone
comparison Framework/Scene2D/PanSceneTracker.h @ 700:059e1fd05fd6 refactor-viewport-controller
Introduced the ViewportController that sits between the application and the
Scene2D to handle the trackers and measuring tools. This is a work in progress.
The Scene2D is no longer an observable. Message sending is managed by the
ViewportController.
Move some refs to shared and weak to prevent lifetime issues.
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Sun, 19 May 2019 16:26:17 +0200 |
parents | b716763571ad |
children | c1d6a566dfd3 |
comparison
equal
deleted
inserted
replaced
699:5c551f078c18 | 700:059e1fd05fd6 |
---|---|
19 **/ | 19 **/ |
20 | 20 |
21 | 21 |
22 #pragma once | 22 #pragma once |
23 | 23 |
24 #include "IPointerTracker.h" | 24 #include "../Scene2DViewport/OneGesturePointerTracker.h" |
25 #include "Scene2D.h" | |
26 | 25 |
27 namespace OrthancStone | 26 namespace OrthancStone |
28 { | 27 { |
29 class PanSceneTracker : public IPointerTracker | 28 class ViewportController; |
29 | |
30 class PanSceneTracker : public OneGesturePointerTracker | |
30 { | 31 { |
31 private: | |
32 Scene2D& scene_; | |
33 ScenePoint2D pivot_; | |
34 AffineTransform2D originalSceneToCanvas_; | |
35 AffineTransform2D originalCanvasToScene_; | |
36 | |
37 public: | 32 public: |
38 PanSceneTracker(Scene2D& scene, | 33 PanSceneTracker(ViewportControllerWPtr controllerW, |
39 const PointerEvent& event); | 34 const PointerEvent& event); |
40 | 35 |
41 virtual void Update(const PointerEvent& event); | 36 virtual void PointerMove(const PointerEvent& event) ORTHANC_OVERRIDE; |
37 virtual void Cancel() ORTHANC_OVERRIDE; | |
42 | 38 |
43 virtual void Release() | 39 private: |
44 { | 40 ViewportControllerWPtr controllerW_; |
45 } | 41 ScenePoint2D pivot_; |
42 AffineTransform2D originalSceneToCanvas_; | |
43 AffineTransform2D originalCanvasToScene_; | |
46 }; | 44 }; |
47 } | 45 } |