Mercurial > hg > orthanc-stone
diff Framework/Scene2DViewport/CreateAngleMeasureCommand.cpp @ 1020:ac88989817e3 toa2019093001
TrackerCommand --> MeasureCommand + fuse against exception in MeasureTool dtor
+ added DeleteMeasureCommand + moved the various concrete measuring tool-related
classes to their pre-assigned file locations (everything was crammed into
MeasureCommands.* files up to this commit) + added double-click handler to
GuiAdapter (for TOA implementation of "delete measuring tool on double-click")
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Mon, 30 Sep 2019 10:41:06 +0200 |
parents | 66ac7a2d1e3a |
children | e146743f6cdc 2d8ab34c8c91 |
line wrap: on
line diff
--- a/Framework/Scene2DViewport/CreateAngleMeasureCommand.cpp Fri Sep 27 13:32:05 2019 +0200 +++ b/Framework/Scene2DViewport/CreateAngleMeasureCommand.cpp Mon Sep 30 10:41:06 2019 +0200 @@ -0,0 +1,53 @@ +/** + * Stone of Orthanc + * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics + * Department, University Hospital of Liege, Belgium + * Copyright (C) 2017-2019 Osimis S.A., Belgium + * + * This program is free software: you can redistribute it and/or + * modify it under the terms of the GNU Affero General Public License + * as published by the Free Software Foundation, either version 3 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + **/ + +#include "CreateAngleMeasureCommand.h" + +#include <boost/make_shared.hpp> +#include <boost/ref.hpp> + +namespace OrthancStone +{ + CreateAngleMeasureCommand::CreateAngleMeasureCommand( + MessageBroker& broker, + boost::weak_ptr<ViewportController> controllerW, + ScenePoint2D point) + : CreateMeasureCommand(controllerW) + , measureTool_( + boost::make_shared<AngleMeasureTool>(boost::ref(broker), controllerW)) + { + GetController()->AddMeasureTool(measureTool_); + measureTool_->SetSide1End(point); + measureTool_->SetCenter(point); + measureTool_->SetSide2End(point); + } + + /** This method sets center*/ + void CreateAngleMeasureCommand::SetCenter(ScenePoint2D scenePos) + { + measureTool_->SetCenter(scenePos); + } + + /** This method sets end of side 2*/ + void CreateAngleMeasureCommand::SetSide2End(ScenePoint2D scenePos) + { + measureTool_->SetSide2End(scenePos); + } +}