From 700c6ab144a3fa55ba161f1d67406250e61619bf Mon Sep 17 00:00:00 2001 From: Vince Date: Sun, 2 Sep 2012 00:44:55 +0200 Subject: [PATCH] Stroke tool Add stroke tool new icons for tools started some refactoring to help having a big redraw loop --- .gitignore | 1 + css/style.css | 30 ++++-- img/tools/{ => cursors}/eraser.png | Bin img/tools/{ => cursors}/paint-bucket.png | Bin img/tools/{ => cursors}/pen.png | Bin img/tools/icons/eraser.png | Bin 0 -> 774 bytes img/tools/icons/paint-bucket.png | Bin 0 -> 50690 bytes img/tools/icons/pen.png | Bin 0 -> 49278 bytes img/tools/icons/stroke.png | Bin 0 -> 49650 bytes index.html | 35 +++++-- js/ToolSelector.js | 3 +- js/drawingtools/BaseTool.js | 27 ++++- js/drawingtools/Eraser.js | 18 ++-- js/drawingtools/PaintBucket.js | 59 +++++------ js/drawingtools/SimplePen.js | 25 ++--- js/drawingtools/Stroke.js | 128 +++++++++++++++++++++++ js/piskel.js | 46 +++++--- 17 files changed, 279 insertions(+), 93 deletions(-) create mode 100644 .gitignore rename img/tools/{ => cursors}/eraser.png (100%) rename img/tools/{ => cursors}/paint-bucket.png (100%) rename img/tools/{ => cursors}/pen.png (100%) create mode 100644 img/tools/icons/eraser.png create mode 100644 img/tools/icons/paint-bucket.png create mode 100644 img/tools/icons/pen.png create mode 100644 img/tools/icons/stroke.png create mode 100644 js/drawingtools/Stroke.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5509140 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.DS_Store diff --git a/css/style.css b/css/style.css index ce04f1d..4b6d9d0 100644 --- a/css/style.css +++ b/css/style.css @@ -127,27 +127,39 @@ ul, li { z-index: 1; } +.canvas-overlay { + position: absolute; + top: 0; + left: 0; + z-index: 10; +} + .drawing-canvas-container { float: left; } .tool-paint-bucket .drawing-canvas-container:hover { - cursor: url(../img/tools/paint-bucket.png) 18 17, pointer; + cursor: url(../img/tools/cursors/paint-bucket.png) 18 17, pointer; } .tool-pen .drawing-canvas-container:hover { - cursor: url(../img/tools/pen.png) 7 21, pointer; + cursor: url(../img/tools/cursors/pen.png) 7 21, pointer; } .tool-eraser .drawing-canvas-container:hover { - cursor: url(../img/tools/eraser.png) 5 21, pointer; + cursor: url(../img/tools/cursors/eraser.png) 5 21, pointer; } +.tool-stroke .drawing-canvas-container:hover { + cursor: url(../img/tools/cursors/pen.png) 5 21, pointer; +} + + /** * Tool section: */ -#palette li { +.palette .palette-color { display : inline-block; height : 20px; width : 20px; @@ -185,15 +197,19 @@ ul, li { } .tool-icon.tool-pen { - background: #fff url(../img/tools/pen.png) 3px 3px no-repeat; + background: #fff url(../img/tools/icons/pen.png) 3px 3px no-repeat; } .tool-icon.tool-paint-bucket { - background: #fff url(../img/tools/paint-bucket.png) 3px 3px no-repeat; + background: #fff url(../img/tools/icons/paint-bucket.png) 3px 3px no-repeat; } .tool-icon.tool-eraser { - background: #fff url(../img/tools/eraser.png) 3px 3px no-repeat; + background: #fff url(../img/tools/icons/eraser.png) 3px 3px no-repeat; +} + +.tool-icon.tool-stroke { + background: #fff url(../img/tools/icons/stroke.png) 3px 3px no-repeat; } #preview-fps { diff --git a/img/tools/eraser.png b/img/tools/cursors/eraser.png similarity index 100% rename from img/tools/eraser.png rename to img/tools/cursors/eraser.png diff --git a/img/tools/paint-bucket.png b/img/tools/cursors/paint-bucket.png similarity index 100% rename from img/tools/paint-bucket.png rename to img/tools/cursors/paint-bucket.png diff --git a/img/tools/pen.png b/img/tools/cursors/pen.png similarity index 100% rename from img/tools/pen.png rename to img/tools/cursors/pen.png diff --git a/img/tools/icons/eraser.png b/img/tools/icons/eraser.png new file mode 100644 index 0000000000000000000000000000000000000000..b9b7522e1fcc99ba780f36441663a7d0509841fb GIT binary patch literal 774 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 Ux4C`uOjVBCdJpGf#~pFM13W7t?*IS* literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 80c6185..f7fd8f8 100644 --- a/index.html +++ b/index.html @@ -7,7 +7,7 @@ Piskel - + @@ -15,24 +15,36 @@
+ + -
    -
+ + +
    + +
    + +
    -
    -
    -
    +
    +
    +
    +
    + -
      + +
        + +
        @@ -45,21 +57,28 @@
        + + + + - + + + + diff --git a/js/ToolSelector.js b/js/ToolSelector.js index 45bae85..0532980 100644 --- a/js/ToolSelector.js +++ b/js/ToolSelector.js @@ -11,7 +11,8 @@ pskl.ToolSelector = (function() { var toolInstances = { "simplePen" : new pskl.drawingtools.SimplePen(), "eraser" : new pskl.drawingtools.Eraser(), - "paintBucket" : new pskl.drawingtools.PaintBucket() + "paintBucket" : new pskl.drawingtools.PaintBucket(), + "stroke" : new pskl.drawingtools.Stroke() }; var currentSelectedTool = toolInstances.simplePen; var previousSelectedTool = toolInstances.simplePen; diff --git a/js/drawingtools/BaseTool.js b/js/drawingtools/BaseTool.js index cd10251..81a7188 100644 --- a/js/drawingtools/BaseTool.js +++ b/js/drawingtools/BaseTool.js @@ -8,12 +8,13 @@ ns.BaseTool = function() {}; - ns.BaseTool.prototype.applyToolOnFrameAt = function(col, row, frame, color) {}; + ns.BaseTool.prototype.applyToolAt = function(col, row, frame, color, canvas, dpi) {}; - ns.BaseTool.prototype.applyToolOnCanvasAt = function(col, row, canvas, color, dpi) {}; - - ns.BaseTool.prototype.releaseToolAt = function() {}; + ns.BaseTool.prototype.moveToolAt = function(col, row, frame, color, canvas, dpi) {}; + ns.BaseTool.prototype.releaseToolAt = function(col, row, frame, color, canvas, dpi) {}; + + // TODO: Remove that when we have the centralized redraw loop ns.BaseTool.prototype.drawPixelInCanvas = function (col, row, canvas, color, dpi) { var context = canvas.getContext('2d'); if(color == undefined || color == Constants.TRANSPARENT_COLOR) { @@ -27,6 +28,7 @@ } }; + // TODO: Remove that when we have the centralized redraw loop ns.BaseTool.prototype.drawFrameInCanvas = function (frame, canvas, dpi) { var color; for(var col = 0, num_col = frame.length; col < num_col; col++) { @@ -36,4 +38,21 @@ } } }; + + // For some tools, we need a fake canvas that overlay the drawing canvas. These tools are + // generally 'drap and release' based tools (stroke, selection, etc) and the fake canvas + // will help to visualize the tool interaction (without modifying the canvas). + ns.BaseTool.prototype.createCanvasOverlay = function (canvas) { + var overlayCanvas = document.createElement("canvas"); + overlayCanvas.className = "canvas-overlay"; + overlayCanvas.setAttribute("width", canvas.width); + overlayCanvas.setAttribute("height", canvas.height); + + canvas.parentNode.appendChild(overlayCanvas); + return overlayCanvas; + }; + + ns.BaseTool.prototype.removeCanvasOverlays = function () { + $(".canvas-overlay").remove(); + }; })(); diff --git a/js/drawingtools/Eraser.js b/js/drawingtools/Eraser.js index c6592c3..cd2cdd7 100644 --- a/js/drawingtools/Eraser.js +++ b/js/drawingtools/Eraser.js @@ -16,23 +16,21 @@ /** * @override */ - ns.Eraser.prototype.applyToolOnFrameAt = function(col, row, frame, color) { + ns.Eraser.prototype.applyToolAt = function(col, row, frame, color, canvas, dpi) { + + // Change model: frame[col][row] = Constants.TRANSPARENT_COLOR; - }; - - /** - * @override - */ - ns.Eraser.prototype.applyToolOnCanvasAt = function(col, row, canvas, frame, color, dpi) { + // Draw on canvas: + // TODO: Remove that when we have the centralized redraw loop this.drawPixelInCanvas(col, row, canvas, Constants.TRANSPARENT_COLOR, dpi); }; /** * @override */ - ns.Eraser.prototype.releaseToolAt = function() { - // Do nothing - console.log('Eraser release'); + ns.Eraser.prototype.moveToolAt = function(col, row, frame, color, canvas, dpi) { + this.applyToolAt(col, row, frame, color, canvas, dpi); }; + })(); \ No newline at end of file diff --git a/js/drawingtools/PaintBucket.js b/js/drawingtools/PaintBucket.js index 0a55d41..ed01679 100644 --- a/js/drawingtools/PaintBucket.js +++ b/js/drawingtools/PaintBucket.js @@ -15,45 +15,38 @@ /** * @override */ - ns.PaintBucket.prototype.applyToolOnFrameAt = function(col, row, frame, color) {}; + ns.PaintBucket.prototype.applyToolAt = function(col, row, frame, color, canvas, dpi) { - /** - * @override - */ - ns.PaintBucket.prototype.applyToolOnCanvasAt = function(col, row, canvas, frame, replacementColor, dpi) { - + // Change model: var targetColor = pskl.utils.normalizeColor(frame[col][row]); - //this.recursiveFloodFill(frame, col, row, targetColor, replacementColor); - this.queueLinearFloodFill(frame, col, row, targetColor, replacementColor); + //this.recursiveFloodFill_(frame, col, row, targetColor, color); + this.queueLinearFloodFill_(frame, col, row, targetColor, color); + + // Draw in canvas: + // TODO: Remove that when we have the centralized redraw loop this.drawFrameInCanvas(frame, canvas, dpi); }; - /** - * @override - */ - ns.PaintBucket.prototype.releaseToolAt = function() { - // Do nothing - console.log('PaintBucket release'); - }; - /** * Flood-fill (node, target-color, replacement-color): - 1. Set Q to the empty queue. - 2. If the color of node is not equal to target-color, return. - 3. Add node to Q. - 4. For each element n of Q: - 5. If the color of n is equal to target-color: - 6. Set w and e equal to n. - 7. Move w to the west until the color of the node to the west of w no longer matches target-color. - 8. Move e to the east until the color of the node to the east of e no longer matches target-color. - 9. Set the color of nodes between w and e to replacement-color. - 10. For each node n between w and e: - 11. If the color of the node to the north of n is target-color, add that node to Q. - 12. If the color of the node to the south of n is target-color, add that node to Q. - 13. Continue looping until Q is exhausted. - 14. Return. + * 1. Set Q to the empty queue. + * 2. If the color of node is not equal to target-color, return. + * 3. Add node to Q. + * 4. For each element n of Q: + * 5. If the color of n is equal to target-color: + * 6. Set w and e equal to n. + * 7. Move w to the west until the color of the node to the west of w no longer matches target-color. + * 8. Move e to the east until the color of the node to the east of e no longer matches target-color. + * 9. Set the color of nodes between w and e to replacement-color. + * 10. For each node n between w and e: + * 11. If the color of the node to the north of n is target-color, add that node to Q. + * 12. If the color of the node to the south of n is target-color, add that node to Q. + * 13. Continue looping until Q is exhausted. + * 14. Return. + * + * @private */ - ns.PaintBucket.prototype.queueLinearFloodFill = function(frame, col, row, targetColor, replacementColor) { + ns.PaintBucket.prototype.queueLinearFloodFill_ = function(frame, col, row, targetColor, replacementColor) { var queue = []; var dy = [-1, 0, 1, 0]; @@ -104,7 +97,7 @@ break; } } - } + }; /** * Basic Flood-fill implementation (Stack explosion !): @@ -119,7 +112,7 @@ * * @private */ - ns.PaintBucket.prototype.recursiveFloodFill = function(frame, col, row, targetColor, replacementColor) { + ns.PaintBucket.prototype.recursiveFloodFill_ = function(frame, col, row, targetColor, replacementColor) { // Step 1: if( col < 0 || diff --git a/js/drawingtools/SimplePen.js b/js/drawingtools/SimplePen.js index c21c1cc..ed8dac3 100644 --- a/js/drawingtools/SimplePen.js +++ b/js/drawingtools/SimplePen.js @@ -15,27 +15,20 @@ /** * @override */ - ns.SimplePen.prototype.applyToolOnFrameAt = function(col, row, frame, color) { + ns.SimplePen.prototype.applyToolAt = function(col, row, frame, color, canvas, dpi) { + + // Change model: var color = pskl.utils.normalizeColor(color); if (color != frame[col][row]) { frame[col][row] = color; } + + // Draw on canvas: + // TODO: Remove that when we have the centralized redraw loop + this.drawPixelInCanvas(col, row, canvas, color, dpi); }; - /** - * @override - */ - ns.SimplePen.prototype.applyToolOnCanvasAt = function(col, row, canvas, frame, color, dpi) { - - this.drawPixelInCanvas(col, row, canvas, color, dpi); + ns.SimplePen.prototype.moveToolAt = function(col, row, frame, color, canvas, dpi) { + this.applyToolAt(col, row, frame, color, canvas, dpi); }; - - /** - * @override - */ - ns.SimplePen.prototype.releaseToolAt = function() { - // Do nothing - console.log('SimplePen release'); - }; - })(); diff --git a/js/drawingtools/Stroke.js b/js/drawingtools/Stroke.js new file mode 100644 index 0000000..68229d5 --- /dev/null +++ b/js/drawingtools/Stroke.js @@ -0,0 +1,128 @@ +/* + * @provide pskl.drawingtools.SimplePen + * + * @require pskl.utils + */ +(function() { + var ns = $.namespace("pskl.drawingtools"); + + ns.Stroke = function() { + this.toolId = "tool-stroke" + + // Stroke's first point coordinates (set in applyToolAt) + this.startCol = null; + this.startRow = null; + // Stroke's second point coordinates (changing dynamically in moveToolAt) + this.endCol = null; + this.endRow = null; + + this.canvasOverlay = null; + }; + + pskl.utils.inherit(ns.Stroke, ns.BaseTool); + + /** + * @override + */ + ns.Stroke.prototype.applyToolAt = function(col, row, frame, color, canvas, dpi) { + this.startCol = col; + this.startRow = row; + + // When drawing a stroke we don't change the model instantly, since the + // user can move his cursor to change the stroke direction and length + // dynamically. Instead we draw the (preview) stroke in a fake canvas that + // overlay the drawing canvas. + // We wait for the releaseToolAt callback to impact both the + // frame model and canvas rendering. + + // The fake canvas where we will draw the preview of the stroke: + this.canvasOverlay = this.createCanvasOverlay(canvas); + // Drawing the first point of the stroke in the fake overlay canvas: + this.drawPixelInCanvas(col, row, this.canvasOverlay, color, dpi); + }; + + ns.Stroke.prototype.moveToolAt = function(col, row, frame, color, canvas, dpi) { + this.endCol = col; + this.endRow = row; + // When the user moussemove (before releasing), we dynamically compute the + // pixel to draw the line and draw this line in the overlay canvas: + var strokePoints = this.getLinePixels_(this.startCol, this.endCol, this.startRow, this.endRow); + + // Clean overlay canvas: + this.canvasOverlay.getContext("2d").clearRect( + 0, 0, this.canvasOverlay.width, this.canvasOverlay.height); + + // Drawing current stroke: + for(var i = 0; i< strokePoints.length; i++) { + this.drawPixelInCanvas(strokePoints[i].col, strokePoints[i].row, this.canvasOverlay, color, dpi); + } + }; + + /** + * @override + */ + ns.Stroke.prototype.releaseToolAt = function(col, row, frame, color, canvas, dpi) { + this.endCol = col; + this.endRow = row; + + // If the stroke tool is released outside of the canvas, we cancel the stroke: + if(col < 0 || row < 0 || col > frame.length || row > frame[0].length) { + this.removeCanvasOverlays(); + return; + } + + // The user released the tool to draw a line. We will compute the pixel coordinate, impact + // the model and draw them in the drawing canvas (not the fake overlay anymore) + var strokePoints = this.getLinePixels_(this.startCol, this.endCol, this.startRow, this.endRow); + + for(var i = 0; i< strokePoints.length; i++) { + // Change model: + frame[strokePoints[i].col][strokePoints[i].row] = color; + + // Draw in canvas: + // TODO: Remove that when we have the centralized redraw loop + this.drawPixelInCanvas(strokePoints[i].col, strokePoints[i].row, canvas, color, dpi); + } + + // For now, we are done with the stroke tool and don't need an overlay anymore: + this.removeCanvasOverlays(); + }; + + /** + * Bresenham line algorihtm: Get an array of pixels from + * start and end coordinates. + * + * http://en.wikipedia.org/wiki/Bresenham's_line_algorithm + * http://stackoverflow.com/questions/4672279/bresenham-algorithm-in-javascript + * + * @private + */ + ns.Stroke.prototype.getLinePixels_ = function(x0, x1, y0, y1) { + + var pixels = []; + var dx = Math.abs(x1-x0); + var dy = Math.abs(y1-y0); + var sx = (x0 < x1) ? 1 : -1; + var sy = (y0 < y1) ? 1 : -1; + var err = dx-dy; + + while(true){ + + // Do what you need to for this + pixels.push({"col": x0, "row": y0}); + + if ((x0==x1) && (y0==y1)) break; + var e2 = 2*err; + if (e2>-dy){ + err -= dy; + x0 += sx; + } + if (e2 < dx) { + err += dx; + y0 += sy; + } + } + return pixels; + }; + +})(); diff --git a/js/piskel.js b/js/piskel.js index fd2fd40..6051bb5 100644 --- a/js/piskel.js +++ b/js/piskel.js @@ -204,7 +204,8 @@ $.namespace("pskl"); addColorToPalette : function (color) { if (color && color != Constants.TRANSPARENT_COLOR && paletteColors.indexOf(color) == -1) { - var colorEl = document.createElement("li"); + var colorEl = document.createElement("li"); + colorEl.className = "palette-color"; colorEl.setAttribute("data-color", color); colorEl.setAttribute("title", color); colorEl.style.background = color; @@ -379,11 +380,14 @@ $.namespace("pskl"); $.publish(Events.CANVAS_RIGHT_CLICKED); } var spriteCoordinate = this.getSpriteCoordinate(event); - currentToolBehavior.applyToolOnFrameAt( - spriteCoordinate.col, spriteCoordinate.row, currentFrame, penColor); - currentToolBehavior.applyToolOnCanvasAt( - spriteCoordinate.col, spriteCoordinate.row, drawingAreaCanvas, currentFrame, penColor, drawingCanvasDpi); - + currentToolBehavior.applyToolAt( + spriteCoordinate.col, + spriteCoordinate.row, + currentFrame, + penColor, + drawingAreaCanvas, + drawingCanvasDpi); + piskel.persistToLocalStorageRequest(); }, @@ -391,12 +395,18 @@ $.namespace("pskl"); //this.updateCursorInfo(event); if (isClicked) { - var spriteCoordinate = this.getSpriteCoordinate(event) - currentToolBehavior.applyToolOnFrameAt( - spriteCoordinate.col, spriteCoordinate.row, currentFrame, penColor); - currentToolBehavior.applyToolOnCanvasAt( - spriteCoordinate.col, spriteCoordinate.row, drawingAreaCanvas, currentFrame, penColor, drawingCanvasDpi); - + var spriteCoordinate = this.getSpriteCoordinate(event); + currentToolBehavior.moveToolAt( + spriteCoordinate.col, + spriteCoordinate.row, + currentFrame, + penColor, + drawingAreaCanvas, + drawingCanvasDpi); + + // TODO(vincz): Find a way to move that to the model instead of being at the interaction level. + // Eg when drawing, it may make sense to have it here. However for a non drawing tool, + // you don't need to draw anything when mousemoving and you request useless localStorage. piskel.persistToLocalStorageRequest(); } }, @@ -407,15 +417,23 @@ $.namespace("pskl"); // the user was probably drawing on the canvas. // Note: The mousemove movement (and the mouseup) may end up outside // of the drawing canvas. + // TODO: Remove that when we have the centralized redraw loop this.createPreviews(); } + if(isRightClicked) { $.publish(Events.CANVAS_RIGHT_CLICK_RELEASED); } isClicked = false; isRightClicked = false; - var spriteCoordinate = this.getSpriteCoordinate(event) - currentToolBehavior.releaseToolAt(spriteCoordinate.col, spriteCoordinate.row, penColor); + var spriteCoordinate = this.getSpriteCoordinate(event); + currentToolBehavior.releaseToolAt( + spriteCoordinate.col, + spriteCoordinate.row, + currentFrame, + penColor, + drawingAreaCanvas, + drawingCanvasDpi); }, // TODO(vincz/julz): Refactor to make this disappear in a big event-driven redraw loop