Mercurial > hg > orthanc-stone
comparison OrthancStone/Sources/Scene2DViewport/CreateAngleMeasureCommand.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 |
---|---|
25 #include <boost/ref.hpp> | 25 #include <boost/ref.hpp> |
26 | 26 |
27 namespace OrthancStone | 27 namespace OrthancStone |
28 { | 28 { |
29 CreateAngleMeasureCommand::CreateAngleMeasureCommand( | 29 CreateAngleMeasureCommand::CreateAngleMeasureCommand( |
30 boost::shared_ptr<IViewport> viewport, | 30 boost::weak_ptr<IViewport> viewport, |
31 ScenePoint2D point) | 31 ScenePoint2D point) |
32 : CreateMeasureCommand(viewport) | 32 : CreateMeasureCommand(viewport) |
33 , measureTool_(AngleMeasureTool::Create(viewport)) | 33 , measureTool_(AngleMeasureTool::Create(viewport)) |
34 { | 34 { |
35 | 35 |
36 std::unique_ptr<IViewport::ILock> lock(viewport_->Lock()); | 36 std::unique_ptr<IViewport::ILock> lock(GetViewportLock()); |
37 ViewportController& controller = lock->GetController(); | 37 ViewportController& controller = lock->GetController(); |
38 | 38 |
39 controller.AddMeasureTool(measureTool_); | 39 controller.AddMeasureTool(measureTool_); |
40 measureTool_->SetSide1End(point); | 40 measureTool_->SetSide1End(point); |
41 measureTool_->SetCenter(point); | 41 measureTool_->SetCenter(point); |