Mercurial > hg > orthanc-stone
comparison OrthancStone/Sources/Scene2DViewport/CreateAngleMeasureTracker.cpp @ 1606:874e178f34e9
- ViewportController now has weak ptr to Viewport
- Measuring tools + related commands and all trackers now store only a weak_ptr to the Viewport and lock() on demand for usage
- LayerHolder and FixedPoint aligner store only a weak_ptr to the Viewport, too
- Fixed float/double warning in GrayscaleWindowingSceneTracker
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Wed, 28 Oct 2020 20:14:34 +0100 |
parents | 8563ea5d8ae4 |
children | 9ac2a65d4172 |
comparison
equal
deleted
inserted
replaced
1605:b3c439d96d3e | 1606:874e178f34e9 |
---|---|
24 | 24 |
25 #include <OrthancException.h> | 25 #include <OrthancException.h> |
26 | 26 |
27 namespace OrthancStone | 27 namespace OrthancStone |
28 { | 28 { |
29 CreateAngleMeasureTracker::CreateAngleMeasureTracker(boost::shared_ptr<IViewport> viewport, | 29 CreateAngleMeasureTracker::CreateAngleMeasureTracker(boost::weak_ptr<IViewport> viewport, |
30 const PointerEvent& e) : | 30 const PointerEvent& e) : |
31 CreateMeasureTracker(viewport), | 31 CreateMeasureTracker(viewport), |
32 state_(CreatingSide1) | 32 state_(CreatingSide1) |
33 { | 33 { |
34 ScenePoint2D point; | 34 ScenePoint2D point; |
35 | 35 |
36 { | 36 { |
37 std::unique_ptr<IViewport::ILock> lock(viewport_->Lock()); | 37 std::unique_ptr<IViewport::ILock> lock(GetViewportLock()); |
38 Scene2D& scene = lock->GetController().GetScene(); | 38 Scene2D& scene = lock->GetController().GetScene(); |
39 point = e.GetMainPosition().Apply(scene.GetCanvasToSceneTransform()); | 39 point = e.GetMainPosition().Apply(scene.GetCanvasToSceneTransform()); |
40 } | 40 } |
41 | 41 |
42 command_.reset(new CreateAngleMeasureCommand(viewport, point)); | 42 command_.reset(new CreateAngleMeasureCommand(viewport, point)); |
55 "PointerMove: active_ == false"); | 55 "PointerMove: active_ == false"); |
56 } | 56 } |
57 | 57 |
58 | 58 |
59 { | 59 { |
60 std::unique_ptr<IViewport::ILock> lock(viewport_->Lock()); | 60 std::unique_ptr<IViewport::ILock> lock(GetViewportLock()); |
61 ViewportController& controller = lock->GetController(); | 61 ViewportController& controller = lock->GetController(); |
62 | 62 |
63 ScenePoint2D scenePos = event.GetMainPosition().Apply( | 63 ScenePoint2D scenePos = event.GetMainPosition().Apply( |
64 controller.GetScene().GetCanvasToSceneTransform()); | 64 controller.GetScene().GetCanvasToSceneTransform()); |
65 | 65 |