From f8b77403cd03b043ed402acb3552b2ceaa08e6af Mon Sep 17 00:00:00 2001 From: Smie Date: Mon, 16 Jan 2017 11:52:22 -0700 Subject: [PATCH] Improves Rectangle tool performance. --- src/js/tools/drawing/Rectangle.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/js/tools/drawing/Rectangle.js b/src/js/tools/drawing/Rectangle.js index 9b83d1bf..73e8a960 100644 --- a/src/js/tools/drawing/Rectangle.js +++ b/src/js/tools/drawing/Rectangle.js @@ -20,10 +20,19 @@ * @override */ ns.Rectangle.prototype.draw = function (col, row, color, targetFrame, penSize) { - var rectanglePixels = pskl.PixelUtils.getBoundRectanglePixels(this.startCol, this.startRow, col, row); + var rectangle = pskl.PixelUtils.getOrderedRectangleCoordinates(this.startCol, this.startRow, col, row); - pskl.PixelUtils.resizePixels(rectanglePixels, penSize).forEach(function (point) { - targetFrame.setPixel(point[0], point[1], color); - }); + for (var x = rectangle.x0; x <= rectangle.x1; x++) { + for (var y = rectangle.y0; y <= rectangle.y1; y++) { + if ( + x > rectangle.x1 - penSize || + x < rectangle.x0 + penSize || + y > rectangle.y1 - penSize || + y < rectangle.y0 + penSize + ) { + targetFrame.setPixel(x, y, color); + } + } + } }; })();