diff --git a/configParams/ShapeParams.txt b/configParams/ShapeParams.txt index a6c6ecd1..c03f549d 100644 --- a/configParams/ShapeParams.txt +++ b/configParams/ShapeParams.txt @@ -18,6 +18,7 @@ * @param {String} [config.fillPriority] can be color, linear-gradient, radial-graident, or pattern. The default value is color. The fillPriority property makes it really easy to toggle between different fill types. For example, if you want to toggle between a fill color style and a fill pattern style, simply set the fill property and the fillPattern properties, and then use setFillPriority('color') to render the shape with a color fill, or use setFillPriority('pattern') to render the shape with the pattern fill configuration * @param {String} [config.stroke] stroke color * @param {Number} [config.strokeWidth] stroke width + * @param {Boolean} [config.strokeScaleEnabled] flag which enables or disables stroke scale. The default is true * @param {Boolean} [config.strokeEnabled] flag which enables or disables the stroke. The default value is true * @param {String} [config.lineJoin] can be miter, round, or bevel. The default * is miter diff --git a/src/Canvas.js b/src/Canvas.js index 2ec60e73..5c47a503 100644 --- a/src/Canvas.js +++ b/src/Canvas.js @@ -320,6 +320,10 @@ var context = this.context, stroke = shape.getStroke(), strokeWidth = shape.getStrokeWidth(), dashArray = shape.getDashArray(); if(stroke || strokeWidth) { context.save(); + if (!shape.getStrokeScaleEnabled()) { + + context.setTransform(1, 0, 0, 1, 0, 0); + } this._applyLineCap(shape); if(dashArray && shape.getDashArrayEnabled()) { if(context.setLineDash) { diff --git a/src/Shape.js b/src/Shape.js index 78a1c60b..55053fe6 100644 --- a/src/Shape.js +++ b/src/Shape.js @@ -31,7 +31,8 @@ strokeEnabled: true, shadowEnabled: true, dashArrayEnabled: true, - fillPriority: 'color' + fillPriority: 'color', + strokeScaleEnabled: true }); this.nodeType = 'Shape'; @@ -134,6 +135,18 @@ disableStroke: function() { this.setAttr('strokeEnabled', false); }, + /** + * enable stroke scale + */ + enableStrokeScale: function() { + this.setAttr('strokeScaleEnabled', true); + }, + /** + * disable stroke scale + */ + disableStrokeScale: function() { + this.setAttr('strokeScaleEnabled', false); + }, /** * enable shadow */ @@ -168,9 +181,8 @@ if(drawFunc && this.isVisible()) { context.save(); canvas._applyOpacity(this); - canvas._applyLineJoin(this); + canvas._applyLineJoin(this); canvas._applyAncestorTransforms(this); - drawFunc.call(this, canvas); context.restore(); } @@ -199,7 +211,7 @@ Kinetic.Global.extend(Kinetic.Shape, Kinetic.Node); // add getters and setters - Kinetic.Node.addGettersSetters(Kinetic.Shape, ['stroke', 'lineJoin', 'lineCap', 'strokeWidth', 'drawFunc', 'drawHitFunc', 'dashArray', 'shadowColor', 'shadowBlur', 'shadowOpacity', 'fillPatternImage', 'fill', 'fillPatternX', 'fillPatternY', 'fillLinearGradientColorStops', 'fillRadialGradientStartRadius', 'fillRadialGradientEndRadius', 'fillRadialGradientColorStops', 'fillPatternRepeat', 'fillEnabled', 'strokeEnabled', 'shadowEnabled', 'dashArrayEnabled', 'fillPriority']); + Kinetic.Node.addGettersSetters(Kinetic.Shape, ['stroke', 'lineJoin', 'lineCap', 'strokeWidth', 'drawFunc', 'drawHitFunc', 'dashArray', 'shadowColor', 'shadowBlur', 'shadowOpacity', 'fillPatternImage', 'fill', 'fillPatternX', 'fillPatternY', 'fillLinearGradientColorStops', 'fillRadialGradientStartRadius', 'fillRadialGradientEndRadius', 'fillRadialGradientColorStops', 'fillPatternRepeat', 'fillEnabled', 'strokeEnabled', 'shadowEnabled', 'dashArrayEnabled', 'fillPriority', 'strokeScaleEnabled']); /** * set stroke color diff --git a/tests/assets/unitDataUrls.js b/tests/assets/unitDataUrls.js index a2d307cc..3173f8d1 100644 --- a/tests/assets/unitDataUrls.js +++ b/tests/assets/unitDataUrls.js @@ -4,6 +4,7 @@ * urls will be slightly different from browser to browser */ var dataUrls = { + 'scaled rect with disabled stroke scale': 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkIAAADICAYAAAAEE46XAAALaklEQVR4Xu3WMW4cQRAEQfLn+rlkE6IzaOuygvau0VELXn5/+SNAgAABAgQIjAp8j97tbAIECBAgQIDAlxDyERAgQIAAAQKzAkJodnqHEyBAgAABAkLIN0CAAAECBAjMCgih2ekdToAAAQIECAgh3wABAgQIECAwKyCEZqd3OAECBAgQICCEfAMECBAgQIDArIAQmp3e4QQIECBAgIAQ8g0QIECAAAECswJCaHZ6hxMgQIAAAQJCyDdAgAABAgQIzAoIodnpHU6AAAECBAgIId8AAQIECBAgMCsghGandzgBAgQIECAghHwDBAgQIECAwKyAEJqd3uEECBAgQICAEPINECBAgAABArMCQmh2eocTIECAAAECQsg3QIAAAQIECMwKCKHZ6R1OgAABAgQICCHfAAECBAgQIDArIIRmp3c4AQIECBAgIIR8AwQIECBAgMCsgBCand7hBAgQIECAgBDyDRAgQIAAAQKzAkJodnqHEyBAgAABAkLIN0CAAAECBAjMCgih2ekdToAAAQIECAgh3wABAgQIECAwKyCEZqd3OAECBAgQICCEfAMECBAgQIDArIAQmp3e4QQIECBAgIAQ8g0QIECAAAECswJCaHZ6hxMgQIAAAQJCyDdAgAABAgQIzAoIodnpHU6AAAECBAgIId8AAQIECBAgMCsghGandzgBAgQIECAghHwDBAgQIECAwKyAEJqd3uEECBAgQICAEPINECBAgAABArMCQmh2eocTIECAAAECQsg3QIAAAQIECMwKCKHZ6R1OgAABAgQICCHfAAECBAgQIDArIIRmp3c4AQIECBAgIIR8AwQIECBAgMCsgBCand7hBAgQIECAgBDyDRAgQIAAAQKzAkJodnqHEyBAgAABAkLIN0CAAAECBAjMCgih2ekdToAAAQIECAgh3wABAgQIECAwKyCEZqd3OAECBAgQICCEfAMECBAgQIDArIAQmp3e4QQIECBAgIAQ8g0QIECAAAECswJCaHZ6hxMgQIAAAQJCyDdAgAABAgQIzAoIodnpHU6AAAECBAgIId8AAQIECBAgMCsghGandzgBAgQIECAghHwDBAgQIECAwKyAEJqd3uEECBAgQICAEPINECBAgAABArMCQmh2eocTIECAAAECQsg3QIAAAQIECMwKCKHZ6R1OgAABAgQICCHfAAECBAgQIDArIIRmp3c4AQIECBAgIIR8AwQIECBAgMCsgBCand7hBAgQIECAgBDyDRAgQIAAAQKzAkJodnqHEyBAgAABAkLIN0CAAAECBAjMCgih2ekdToAAAQIECAgh3wABAgQIECAwKyCEZqd3OAECBAgQICCEfAMECBAgQIDArIAQmp3e4QQIECBAgIAQ8g0QIECAAAECswJCaHZ6hxMgQIAAAQJCyDdAgAABAgQIzAoIodnpHU6AAAECBAgIId8AAQIECBAgMCsghGandzgBAgQIECAghHwDBH4X+AuGAAECHyrgt/1hOFgPWB6dEhBCU3M7lkBKwG/7w5ywHrA8OiUghKbmdiyBlIDf9oc5YT1geXRKQAhNze1YAikBv+0Pc8J6wPLolMDPEPozdbtjCRD4JIH//z/5bX/YD9YDlkenBITQ1NyOJfDBAkLoNJ4QOvF5OSwghMLjOo1ASkAIneYUQic+L4cFhFB4XKcRSAkIodOcQujE5+WwgBAKj+s0AikBIXSaUwid+LwcFhBC4XGdRiAlIIROcwqhE5+XwwJCKDyu0wikBITQaU4hdOLzclhACIXHdRqBlIAQOs0phE58Xg4LCKHwuE4jkBIQQqc5hdCJz8thASEUHtdpBFICQug0pxA68Xk5LCCEwuM6jUBKQAid5hRCJz4vhwWEUHhcpxFICQih05xC6MTn5bCAEAqP6zQCKQEhdJpTCJ34vBwWEELhcZ1GICUghE5zCqETn5fDAkIoPK7TCKQEhNBpTiF04vNyWEAIhcd1GoGUgBA6zSmETnxeDgsIofC4TiOQEhBCpzmF0InPy2EBIRQe12kEUgJC6DSnEDrxeTksIITC4zqNQEpACJ3mFEInPi+HBYRQeFynEUgJCKHTnELoxOflsIAQCo/rNAIpASF0mlMInfi8HBYQQuFxnUYgJSCETnMKoROfl8MCQig8rtMIpASE0GlOIXTi83JYQAiFx3UagZSAEDrNKYROfF4OCwih8LhOI5ASEEKnOYXQic/LYQEhFB7XaQRSAkLoNKcQOvF5OSwghMLjOo1ASkAIneYUQic+L4cFhFB4XKcRSAkIodOcQujE5+WwgBAKj+s0AikBIXSaUwid+LwcFhBC4XGdRiAlIIROcwqhE5+XwwJCKDyu0wikBITQaU4hdOLzclhACIXHdRqBlIAQOs0phE58Xg4LCKHwuE4jkBIQQqc5hdCJz8thASEUHtdpBFICQug0pxA68Xk5LCCEwuM6jUBKQAid5hRCJz4vhwWEUHhcpxFICQih05xC6MTn5bCAEAqP6zQCKQEhdJpTCJ34vBwWEELhcZ1GICUghE5zCqETn5fDAkIoPK7TCKQEhNBpTiF04vNyWEAIhcd1GoGUgBA6zSmETnxeDgsIofC4TiOQEhBCpzmF0InPy2EBIRQe12kEUgJC6DSnEDrxeTksIITC4zqNQEpACJ3mFEInPi+HBYRQeFynEUgJCKHTnELoxOflsIAQCo/rNAIpASF0mlMInfi8HBYQQuFxnUYgJSCETnMKoROfl8MCP0MofKjTCBDICfhtf5gU1gOWR6cEhNDU3I4lkBLw2/4wJ6wHLI9OCQihqbkdSyAl4Lf9YU5YD1genRIQQlNzO5ZASsBv+8OcsB6wPEqAAAECBAi0BIRQa0/XECBAgAABAg8CQugBy6MECBAgQIBAS0AItfZ0DQECBAgQIPAgIIQesDxKgAABAgQItASEUGtP1xAgQIAAAQIPAkLoAcujBAgQIECAQEtACLX2dA0BAgQIECDwICCEHrA8SoAAAQIECLQEhFBrT9cQIECAAAECDwJC6AHLowQIECBAgEBLQAi19nQNAQIECBAg8CAghB6wPEqAAAECBAi0BIRQa0/XECBAgAABAg8CQugBy6MECBAgQIBAS0AItfZ0DQECBAgQIPAgIIQesDxKgAABAgQItASEUGtP1xAgQIAAAQIPAkLoAcujBAgQIECAQEtACLX2dA0BAgQIECDwICCEHrA8SoAAAQIECLQEhFBrT9cQIECAAAECDwJC6AHLowQIECBAgEBLQAi19nQNAQIECBAg8CAghB6wPEqAAAECBAi0BIRQa0/XECBAgAABAg8CQugBy6MECBAgQIBAS0AItfZ0DQECBAgQIPAgIIQesDxKgAABAgQItASEUGtP1xAgQIAAAQIPAkLoAcujBAgQIECAQEtACLX2dA0BAgQIECDwICCEHrA8SoAAAQIECLQEhFBrT9cQIECAAAECDwJC6AHLowQIECBAgEBLQAi19nQNAQIECBAg8CAghB6wPEqAAAECBAi0BIRQa0/XECBAgAABAg8CQugBy6MECBAgQIBAS0AItfZ0DQECBAgQIPAgIIQesDxKgAABAgQItASEUGtP1xAgQIAAAQIPAkLoAcujBAgQIECAQEtACLX2dA0BAgQIECDwICCEHrA8SoAAAQIECLQEhFBrT9cQIECAAAECDwJC6AHLowQIECBAgEBLQAi19nQNAQIECBAg8CAghB6wPEqAAAECBAi0BIRQa0/XECBAgAABAg8CQugBy6MECBAgQIBAS0AItfZ0DQECBAgQIPAgIIQesDxKgAABAgQItASEUGtP1xAgQIAAAQIPAkLoAcujBAgQIECAQEtACLX2dA0BAgQIECDwICCEHrA8SoAAAQIECLQEhFBrT9cQIECAAAECDwL/APfhZMmegQxmAAAAAElFTkSuQmCC', 'star with linear gradient fill': 'data:image/png;base64,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', 'red star': 'data:image/png;base64,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', 'text stroke disabled': 'data:image/png;base64,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bgSMgBEwAkbACJgIWQeMgBEwAkbACBiBziJgItRZ0bvjRsAIGAEjYASMgImQdcAIGAEjYASMgBHoLAImQp0VvTtuBIyAETACRsAImAhZB4yAETACRsAIGIHOImAi1FnRu+NGwAgYASNgBIyAiZB1wAgYASNgBIyAEegsAiZCnRW9O24EjIARMAJGwAiYCFkHjIARMAJGwAgYgc4iYCLUWdG740bACBgBI2AEjICJkHXACBgBI2AEjIAR6CwCJkKdFb07bgSMgBEwAkbACJgIWQeMgBEwAkbACBiBziJgItRZ0bvjRsAIGAEjYASMgImQdcAIGAEjYASMgBHoLAImQp0VvTtuBIyAETACRsAImAhZB4yAETACRsAIGIHOImAi1FnRu+NGwAgYASNgBIyAiZB1wAgYASNgBIyAEegsAiZCnRW9O24EjIARMAJGwAiYCFkHjIARMAJGwAgYgc4iYCLUWdG740bACBgBI2AEjICJkHXACBgBI2AEjIAR6CwCJkKdFb07bgSMgBEwAkbACJgIWQeMgBEwAkbACBiBziJgItRZ0bvjRsAIGAEjYASMgImQdcAIGAEjYASMgBHoLAImQp0VvTtuBIyAETACRsAImAhZB4yAETACRsAIGIHOImAi1FnRu+NGwAgYASNgBIyAiZB1wAgYASNgBIyAEegsAiZCnRW9O24EjIARMAJGwAiYCFkHjIARMAJGwAgYgc4iYCLUWdG740bACBgBI2AEjICJkHXACBgBI2AEjIAR6CwCJkKdFb07bgSMgBEwAkbACJgIWQeMgBEwAkbACBiBziJgItRZ0bvjRsAIGAEjYASMgImQdcAIGAEjYASMgBHoLAImQp0VvTtuBIyAETACRsAImAhZB4yAETACRsAIGIHOImAi1FnRu+NGwAgYASNgBIyAiZB1wAgYASNgBIyAEegsAiZCnRW9O24EjIARMAJGwAiYCFkHjIARMAJGwAgYgc4iYCLUWdG740bACBgBI2AEjICJkHXACBgBI2AEjIAR6CwCJkKdFb07bgSMgBEwAkbACJgIWQeMgBEwAkbACBiBziJgItRZ0bvjRsAIGAEjYASMgImQdcAIGAEjYASMgBHoLAImQp0VvTtuBIyAETACRsAImAhZB4yAETACRsAIGIHOImAi1FnRu+NGwAgYASNgBIyAiZB1wAgYASNgBIyAEegsAiZCnRW9O24EjIARMAJGwAiYCFkHjIARMAJGwAgYgc4iYCLUWdG740bACBgBI2AEjICJkHXACBgBI2AEjIAR6CwCJkKdFb07bgSMgBEwAkbACJgIWQeMgBEwAkbACBiBziJgItRZ0bvjRsAIGAEjYASMgImQdcAIGAEjYASMgBHoLAImQp0VvTtuBIyAETACRsAImAhZB4yAETACRsAIGIHOImAi1FnRu+NGwAgYASNgBIyAiZB1wAgYASNgBIyAEegsAiZCnRW9O24EjIARMAJGwAiYCFkHjIARMAJGwAgYgc4iYCLUWdG740bACBgBI2AEjICJkHXACBgBI2AEjIAR6CwCJkKdFb07bgSMgBEwAkbACJgIWQeMgBEwAkbACBiBziJgItRZ0bvjRsAIGAEjYASMgImQdcAIGAEjYASMgBHoLAImQp0VvTtuBIyAETACRsAImAhZB4yAETACRsAIGIHOImAi1FnRu+NGwAgYASNgBIyAiZB1wAgYASNgBIyAEegsAiZCnRW9O24EjIARMAJGwAiYCFkHjIARMAJGwAgYgc4iYCLUWdG740bACBgBI2AEjICJkHXACBgBI2AEjIAR6CwCJkKdFb07bgSMgBEwAkbACJgIWQeMgBEwAkbACBiBziJgItRZ0bvjRsAIGAEjYASMgImQdcAIGAEjYASMgBHoLAImQp0VvTtuBIyAETACRsAImAhZB4yAETACRsAIGIHOImAi1FnRu+NGwAgYASNgBIyAiZB1wAgYASNgBIyAEegsAiZCnRW9O24EjIARMAJGwAiYCFkHjIARMAJGwAgYgc4iYCLUWdG740bACBgBI2AEjICJkHXACBgBI2AEjIAR6CwC/wvALx6L+Klh8wAAAABJRU5ErkJggg==', diff --git a/tests/js/unit/shapeTests.js b/tests/js/unit/shapeTests.js index 72a3ff1e..db1ddcb7 100644 --- a/tests/js/unit/shapeTests.js +++ b/tests/js/unit/shapeTests.js @@ -1,4 +1,31 @@ Test.Modules.SHAPE = { + 'scale rect with stroke scale disabled': function(containerId) { + var stage = new Kinetic.Stage({ + container: containerId, + width: 578, + height: 200 + }); + var layer = new Kinetic.Layer(); + var rect = new Kinetic.Rect({ + x: 200, + y: 90, + width: 100, + height: 50, + fill: 'green', + stroke: 'black', + strokeWidth: 4, + scale: [3, 1], + draggable: true, + strokeScaleEnabled: false + }); + + layer.add(rect); + stage.add(layer); + + //console.log(layer.toDataURL()); + + warn(layer.toDataURL() === dataUrls['scaled rect with disabled stroke scale'], 'probem with stroke scale disabling'); + }, 'test intersects()': function(containerId) { var stage = new Kinetic.Stage({ container: containerId, diff --git a/tests/js/unit/shapes/imageTests.js b/tests/js/unit/shapes/imageTests.js index 5ff56959..a7ea6adc 100644 --- a/tests/js/unit/shapes/imageTests.js +++ b/tests/js/unit/shapes/imageTests.js @@ -295,7 +295,7 @@ Test.Modules.IMAGE = { }; imageObj.src = '../assets/darth-vader.jpg'; }, - '*gaussian blur filter': function(containerId) { + 'gaussian blur filter': function(containerId) { var imageObj = new Image(); imageObj.onload = function() { var stage = new Kinetic.Stage({