comparison Framework/Scene2DViewport/CreateAngleMeasureCommand.cpp @ 1305:a5326ce4f24b broker

Trackers and measuring tools now use the viewport instead of ViewportController, so that proper locks can be used
author Benjamin Golinvaux <bgo@osimis.io>
date Wed, 04 Mar 2020 09:45:38 +0100
parents 7ec8fea061b9
children 1f877e0846fe
comparison
equal deleted inserted replaced
1304:b7fa67bf87fa 1305:a5326ce4f24b
24 #include <boost/ref.hpp> 24 #include <boost/ref.hpp>
25 25
26 namespace OrthancStone 26 namespace OrthancStone
27 { 27 {
28 CreateAngleMeasureCommand::CreateAngleMeasureCommand( 28 CreateAngleMeasureCommand::CreateAngleMeasureCommand(
29 boost::weak_ptr<ViewportController> controllerW, 29 IViewport& viewport,
30 ScenePoint2D point) 30 ScenePoint2D point)
31 : CreateMeasureCommand(controllerW) 31 : CreateMeasureCommand(viewport)
32 , measureTool_( 32 , measureTool_(
33 boost::make_shared<AngleMeasureTool>(controllerW)) 33 boost::make_shared<AngleMeasureTool>(viewport))
34 { 34 {
35 GetController()->AddMeasureTool(measureTool_); 35
36 std::unique_ptr<IViewport::ILock> lock(viewport_.Lock());
37 ViewportController& controller = lock->GetController();
38
39 controller.AddMeasureTool(measureTool_);
36 measureTool_->SetSide1End(point); 40 measureTool_->SetSide1End(point);
37 measureTool_->SetCenter(point); 41 measureTool_->SetCenter(point);
38 measureTool_->SetSide2End(point); 42 measureTool_->SetSide2End(point);
39 } 43 }
40 44