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));
   }