changeset 2353:d8a6f6296d3b refactoring

simplified Scene2D
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 06 Oct 2026 21:05:36 +0200
parents 32d1ef594704
children 2a9d30482584
files OrthancStone/Sources/Scene2D/CairoCompositor.cpp OrthancStone/Sources/Scene2D/OpenGLCompositor.cpp OrthancStone/Sources/Scene2D/Scene2D.cpp OrthancStone/Sources/Scene2D/Scene2D.h OrthancStone/Sources/Volumes/VolumeSceneLayerSource.h
diffstat 5 files changed, 14 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
--- a/OrthancStone/Sources/Scene2D/CairoCompositor.cpp	Tue Oct 06 20:45:26 2026 +0200
+++ b/OrthancStone/Sources/Scene2D/CairoCompositor.cpp	Tue Oct 06 21:05:36 2026 +0200
@@ -34,6 +34,9 @@
 
 #include <OrthancException.h>
 
+#include <boost/lexical_cast.hpp>
+
+
 namespace OrthancStone
 {
   cairo_t* CairoCompositor::GetCairoContext()
--- a/OrthancStone/Sources/Scene2D/OpenGLCompositor.cpp	Tue Oct 06 20:45:26 2026 +0200
+++ b/OrthancStone/Sources/Scene2D/OpenGLCompositor.cpp	Tue Oct 06 21:05:36 2026 +0200
@@ -32,8 +32,12 @@
 #include "Internals/OpenGLTextRenderer.h"
 #include "Internals/MacroLayerRenderer.h"
 
+#include <Logging.h>
 #include <OrthancException.h>
 
+#include <boost/lexical_cast.hpp>
+
+
 namespace OrthancStone
 {
   class OpenGLCompositor::Font : public boost::noncopyable
--- a/OrthancStone/Sources/Scene2D/Scene2D.cpp	Tue Oct 06 20:45:26 2026 +0200
+++ b/OrthancStone/Sources/Scene2D/Scene2D.cpp	Tue Oct 06 21:05:36 2026 +0200
@@ -23,6 +23,7 @@
 
 #include "Scene2D.h"
 
+#include <Logging.h>
 #include <OrthancException.h>
 
 #include "ScenePoint2D.h"
@@ -81,15 +82,6 @@
   };
   
   
-  Scene2D::Scene2D() :
-    layerCounter_(0),
-    canvasToSceneFactor_(canvasToScene_.ComputeZoom()),
-    transformRevision_(0)
-  {
-    assert(LinearAlgebra::IsNear(1, canvasToSceneFactor_));
-  }
-
-
   Scene2D::~Scene2D()
   {
     for (Content::iterator it = content_.begin(); 
@@ -222,7 +214,6 @@
 
     sceneToCanvas_ = transform;
     canvasToScene_ = inverse;
-    transformRevision_ ++;
   }
 
   void Scene2D::GetBoundingBox(Extent2D& target) const
--- a/OrthancStone/Sources/Scene2D/Scene2D.h	Tue Oct 06 20:45:26 2026 +0200
+++ b/OrthancStone/Sources/Scene2D/Scene2D.h	Tue Oct 06 21:05:36 2026 +0200
@@ -25,8 +25,6 @@
 
 #include "ISceneLayer.h"
 #include "../Toolbox/AffineTransform2D.h"
-#include "../Messages/IObservable.h"
-#include "../Messages/IMessage.h"
 
 #include <map>
 
@@ -57,16 +55,17 @@
     AffineTransform2D  sceneToCanvas_;
     AffineTransform2D  canvasToScene_;
     uint64_t           layerCounter_;
-    double             canvasToSceneFactor_;  // This value is cached from "canvasToScene_.ComputeZoom()"
-    uint64_t           transformRevision_;
 
     void FitContent(const AffineTransform2D& forcedTransform,
                     unsigned int canvasWidth,
                     unsigned int canvasHeight);
 
   public:
-    Scene2D();
-    
+    Scene2D() :
+      layerCounter_(0)
+    {
+    }
+
     ~Scene2D();
 
     ISceneLayer& SetLayer(int depth,
@@ -132,15 +131,5 @@
 
     void PreserveExtent(int depth,
                         const Extent2D& previousExtent);
-
-    double GetCanvasToSceneFactor() const
-    {
-      return canvasToSceneFactor_;
-    }
-
-    uint64_t GetTransformRevision() const
-    {
-      return transformRevision_;
-    }
   };
 }
--- a/OrthancStone/Sources/Volumes/VolumeSceneLayerSource.h	Tue Oct 06 20:45:26 2026 +0200
+++ b/OrthancStone/Sources/Volumes/VolumeSceneLayerSource.h	Tue Oct 06 21:05:36 2026 +0200
@@ -27,11 +27,11 @@
 #include "../Viewport/IViewport.h"
 #include "IVolumeSlicer.h"
 
+#include <boost/weak_ptr.hpp>
 #include <boost/shared_ptr.hpp>
 
 namespace OrthancStone
 {
-  class IViewport;
   /**
      This class applies one "volume slicer" to a "3D volume", in order
      to create one "2D scene layer" that will be set onto the "2D