Mercurial > hg > orthanc-stone
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); + } } }
