Mercurial > hg > orthanc-stone
diff Framework/Scene2DViewport/MeasureCommands.cpp @ 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 | 8b6adfb62a2f |
children | 28b9e3a54200 |
line wrap: on
line diff
--- a/Framework/Scene2DViewport/MeasureCommands.cpp Fri May 17 09:20:46 2019 +0200 +++ b/Framework/Scene2DViewport/MeasureCommands.cpp Sun May 19 16:26:17 2019 +0200 @@ -34,8 +34,8 @@ } CreateMeasureCommand::CreateMeasureCommand( - Scene2DWPtr sceneW, MeasureToolList& measureTools) - : TrackerCommand(sceneW) + ViewportControllerWPtr controllerW, MeasureToolList& measureTools) + : TrackerCommand(controllerW) , measureTools_(measureTools) { @@ -48,12 +48,12 @@ } CreateLineMeasureCommand::CreateLineMeasureCommand( - MessageBroker& broker, - Scene2DWPtr sceneW, - MeasureToolList& measureTools, - ScenePoint2D point) - : CreateMeasureCommand(sceneW, measureTools) - , measureTool_(new LineMeasureTool(broker,sceneW)) + MessageBroker& broker, + ViewportControllerWPtr controllerW, + MeasureToolList& measureTools, + ScenePoint2D point) + : CreateMeasureCommand(controllerW, measureTools) + , measureTool_(new LineMeasureTool(broker, controllerW)) { measureTools_.push_back(measureTool_); measureTool_->Set(point, point); @@ -65,12 +65,12 @@ } CreateAngleMeasureCommand::CreateAngleMeasureCommand( - MessageBroker& broker, - Scene2DWPtr sceneW, - MeasureToolList& measureTools, - ScenePoint2D point) - : CreateMeasureCommand(sceneW, measureTools) - , measureTool_(new AngleMeasureTool(broker,sceneW)) + MessageBroker& broker, + ViewportControllerWPtr controllerW, + MeasureToolList& measureTools, + ScenePoint2D point) + : CreateMeasureCommand(controllerW, measureTools) + , measureTool_(new AngleMeasureTool(broker, controllerW)) { measureTools_.push_back(measureTool_); measureTool_->SetSide1End(point);