Mercurial > hg > orthanc-stone
diff Framework/Scene2DViewport/ViewportController.cpp @ 1232:a28861abf888 broker
viewports for WebAssembly
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 09 Dec 2019 17:46:33 +0100 |
parents | 5147277850cf |
children | f621b57c9f37 |
line wrap: on
line diff
--- a/Framework/Scene2DViewport/ViewportController.cpp Mon Dec 09 14:41:37 2019 +0100 +++ b/Framework/Scene2DViewport/ViewportController.cpp Mon Dec 09 17:46:33 2019 +0100 @@ -66,13 +66,22 @@ ViewportController::ViewportController() : undoStackW_(boost::make_shared<OrthancStone::UndoStack>()), - canvasToSceneFactor_(1) + canvasToSceneFactor_(1), + scene_(new Scene2D) { } - ViewportController::ViewportController(boost::weak_ptr<UndoStack> undoStackW) - : undoStackW_(undoStackW) - , canvasToSceneFactor_(1) + ViewportController::ViewportController(const Scene2D& scene) : + undoStackW_(boost::make_shared<OrthancStone::UndoStack>()), + canvasToSceneFactor_(1), + scene_(scene.Clone()) + { + } + + ViewportController::ViewportController(boost::weak_ptr<UndoStack> undoStackW) : + undoStackW_(undoStackW), + canvasToSceneFactor_(1), + scene_(new Scene2D) { } @@ -171,27 +180,27 @@ OrthancStone::AffineTransform2D ViewportController::GetCanvasToSceneTransform() const { - return scene_.GetCanvasToSceneTransform(); + return scene_->GetCanvasToSceneTransform(); } OrthancStone::AffineTransform2D ViewportController::GetSceneToCanvasTransform() const { - return scene_.GetSceneToCanvasTransform(); + return scene_->GetSceneToCanvasTransform(); } void ViewportController::SetSceneToCanvasTransform(const AffineTransform2D& transform) { - scene_.SetSceneToCanvasTransform(transform); + scene_->SetSceneToCanvasTransform(transform); - canvasToSceneFactor_ = scene_.GetCanvasToSceneTransform().ComputeZoom(); + canvasToSceneFactor_ = scene_->GetCanvasToSceneTransform().ComputeZoom(); BroadcastMessage(SceneTransformChanged(*this)); } void ViewportController::FitContent(unsigned int viewportWidth, unsigned int viewportHeight) { - scene_.FitContent(viewportWidth, viewportHeight); - canvasToSceneFactor_ = scene_.GetCanvasToSceneTransform().ComputeZoom(); + scene_->FitContent(viewportWidth, viewportHeight); + canvasToSceneFactor_ = scene_->GetCanvasToSceneTransform().ComputeZoom(); BroadcastMessage(SceneTransformChanged(*this)); }