From b3c96ef5d80883381e41576d20819fa6233dc63d Mon Sep 17 00:00:00 2001
From: Leonard Kupper <leonard.kupper@mailbox.tu-dresden.de>
Date: Fri, 26 Jul 2019 11:43:07 +0200
Subject: [PATCH] Update RasterCanvas to calculate dot rectangle only once, not
 on every request.

---
 .../inf/mci/brailleplot/rendering/RasterCanvas.java      | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/main/java/de/tudresden/inf/mci/brailleplot/rendering/RasterCanvas.java b/src/main/java/de/tudresden/inf/mci/brailleplot/rendering/RasterCanvas.java
index 72c272b9..54134577 100644
--- a/src/main/java/de/tudresden/inf/mci/brailleplot/rendering/RasterCanvas.java
+++ b/src/main/java/de/tudresden/inf/mci/brailleplot/rendering/RasterCanvas.java
@@ -30,6 +30,7 @@ public class RasterCanvas extends AbstractCanvas {
 
     // Printing area rectangle
     private Rectangle mPrintingAreaCells;
+    private Rectangle mPrintingAreaDots;
 
     // Cell size
     private int mCellWidth; // dots
@@ -148,8 +149,10 @@ public class RasterCanvas extends AbstractCanvas {
         mVerticalCellCount = mPrintingAreaCells.intWrapper().getBottom() + 1; // How many full cells fit vertically?
 
         // To how many dots does this raster size correspond?
-        mColumnCount = mHorizontalCellCount * mCellWidth;
-        mRowCount = mVerticalCellCount * mCellHeight;
+        mPrintingAreaDots = toDotRectangle(mPrintingAreaCells);
+        mColumnCount = mPrintingAreaDots.intWrapper().getWidth();
+        mRowCount = mPrintingAreaDots.intWrapper().getHeight();
+
 
     }
 
@@ -206,7 +209,7 @@ public class RasterCanvas extends AbstractCanvas {
         return new Rectangle(mPrintingAreaCells);
     }
     public final Rectangle getDotRectangle() {
-        return toDotRectangle(mPrintingAreaCells);
+        return mPrintingAreaDots;
     }
     public final Rectangle toDotRectangle(final Rectangle cellRectangle) {
         return cellRectangle.scaledBy(mCellWidth, mCellHeight);
-- 
GitLab