changeset 2254:14cd7e87def4

improved rendering of short dicom-sr
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 03 Dec 2025 11:17:37 +0100
parents 1c2d1d247afb
children ee2b76f07bad
files OrthancStone/Sources/Scene2D/Scene2D.cpp
diffstat 1 files changed, 12 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/OrthancStone/Sources/Scene2D/Scene2D.cpp	Tue Dec 02 19:31:36 2025 +0100
+++ b/OrthancStone/Sources/Scene2D/Scene2D.cpp	Wed Dec 03 11:17:37 2025 +0100
@@ -307,13 +307,20 @@
 
     if (!extent.IsEmpty())
     {
-      double zoom = static_cast<double>(canvasWidth) / extent.GetWidth();
+      if (extent.GetWidth() < extent.GetHeight())
+        {
+          double zoom = static_cast<double>(canvasWidth) / extent.GetWidth();
 
-      AffineTransform2D t1 = AffineTransform2D::CreateOffset(-extent.GetCenterX(), -extent.GetY1());
-      AffineTransform2D t2 = AffineTransform2D::CreateScaling(zoom, zoom);
-      AffineTransform2D t3 = AffineTransform2D::CreateOffset(0, static_cast<double>(canvasHeight) * (topMargin - 0.5));
+          AffineTransform2D t1 = AffineTransform2D::CreateOffset(-extent.GetCenterX(), -extent.GetY1());
+          AffineTransform2D t2 = AffineTransform2D::CreateScaling(zoom, zoom);
+          AffineTransform2D t3 = AffineTransform2D::CreateOffset(0, static_cast<double>(canvasHeight) * (topMargin - 0.5));
 
-      SetSceneToCanvasTransform(AffineTransform2D::Combine(t3, t2, t1));
+          SetSceneToCanvasTransform(AffineTransform2D::Combine(t3, t2, t1));
+        }
+      else
+      {
+        FitContent(canvasWidth, canvasHeight);
+      }
     }
   }