Mercurial > hg > orthanc-stone
diff Framework/Scene2DViewport/AngleMeasureTool.cpp @ 1213:86a8266b8888 broker
moving the scene from IViewport to ViewportController
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 04 Dec 2019 17:54:10 +0100 |
parents | f3bb9a6dd949 |
children | 0ca50d275b9a |
line wrap: on
line diff
--- a/Framework/Scene2DViewport/AngleMeasureTool.cpp Wed Dec 04 16:54:24 2019 +0100 +++ b/Framework/Scene2DViewport/AngleMeasureTool.cpp Wed Dec 04 17:54:10 2019 +0100 @@ -131,10 +131,8 @@ AngleMeasureTool::AngleHighlightArea AngleMeasureTool::AngleHitTest(ScenePoint2D p) const { - std::auto_ptr<IViewport::ILock> lock(GetController()->GetViewport().Lock()); - - const double pixelToScene = - lock->GetScene().GetCanvasToSceneTransform().ComputeZoom(); + const double pixelToScene = GetController()->GetScene().GetCanvasToSceneTransform().ComputeZoom(); + const double SQUARED_HIT_TEST_MAX_DISTANCE_SCENE_COORD = pixelToScene * HIT_TEST_MAX_DISTANCE_CANVAS_COORD * pixelToScene * HIT_TEST_MAX_DISTANCE_CANVAS_COORD; { @@ -178,10 +176,8 @@ boost::shared_ptr<IFlexiblePointerTracker> AngleMeasureTool::CreateEditionTracker(const PointerEvent& e) { - std::auto_ptr<IViewport::ILock> lock(GetController()->GetViewport().Lock()); - ScenePoint2D scenePos = e.GetMainPosition().Apply( - lock->GetScene().GetCanvasToSceneTransform()); + GetController()->GetScene().GetCanvasToSceneTransform()); if (!HitTest(scenePos)) return boost::shared_ptr<IFlexiblePointerTracker>(); @@ -212,8 +208,6 @@ boost::shared_ptr<ViewportController> controller = GetController(); if (IsEnabled()) { - std::auto_ptr<IViewport::ILock> lock(GetController()->GetViewport().Lock()); - layerHolder_->CreateLayersIfNeeded(); { @@ -254,7 +248,7 @@ { PolylineSceneLayer::Chain chain; //TODO: take DPI into account - AddSquare(chain, lock->GetScene(), side1End_, + AddSquare(chain, controller->GetScene(), side1End_, GetController()->GetHandleSideLengthS()); if (angleHighlightArea_ == AngleHighlightArea_Side1End) @@ -266,7 +260,7 @@ { PolylineSceneLayer::Chain chain; //TODO: take DPI into account - AddSquare(chain, lock->GetScene(), side2End_, + AddSquare(chain, controller->GetScene(), side2End_, GetController()->GetHandleSideLengthS()); if (angleHighlightArea_ == AngleHighlightArea_Side2End) @@ -317,10 +311,10 @@ #if ORTHANC_STONE_ENABLE_OUTLINED_TEXT == 1 SetTextLayerOutlineProperties( - lock->GetScene(), layerHolder_, buf, ScenePoint2D(pointX, pointY), 0); + controller->GetScene(), layerHolder_, buf, ScenePoint2D(pointX, pointY), 0); #else SetTextLayerProperties( - lock->GetScene(), layerHolder_, buf, ScenePoint2D(pointX, pointY) , 0); + controller->GetScene(), layerHolder_, buf, ScenePoint2D(pointX, pointY) , 0); #endif #if 0