diff --git a/src/Container.js b/src/Container.js index 33fb483d..cc1d0c18 100644 --- a/src/Container.js +++ b/src/Container.js @@ -155,12 +155,12 @@ return node; }, /** - * get shapes that intersect a point + * get all shapes that intersect a point * @method * @memberof Kinetic.Container.prototype - * @param {Object} point + * @param {Object} pos */ - getIntersections: function() { + getAllIntersections: function() { var pos = Kinetic.Util._getXY(Array.prototype.slice.call(arguments)); var arr = []; var shapes = this.get('Shape'); diff --git a/src/Global.js b/src/Global.js index 64ab9501..755b24eb 100644 --- a/src/Global.js +++ b/src/Global.js @@ -74,7 +74,7 @@ var Kinetic = {}; * context.quadraticCurveTo(300, 100, 260, 170);
* context.closePath();
* canvas.fillStroke(this);
- * } + * }
*}); */ Kinetic.Shape = function(config) { diff --git a/src/Layer.js b/src/Layer.js index acd12ab1..0f97a7d6 100644 --- a/src/Layer.js +++ b/src/Layer.js @@ -11,9 +11,11 @@ this.hitCanvas = new Kinetic.HitCanvas(); }, /** - * get intersection object that contains shape and pixel data + * get visible intersection object that contains shape and pixel data. This is the preferred + * method for determining if a point intersects a shape or not * @method - * @memberof Kinetic.Node.prototype + * @memberof Kinetic.Layer.prototype + * @param {Object} pos point object */ getIntersection: function() { var pos = Kinetic.Util._getXY(Array.prototype.slice.call(arguments)), diff --git a/src/Shape.js b/src/Shape.js index cf2a5aac..169ed64b 100644 --- a/src/Shape.js +++ b/src/Shape.js @@ -76,7 +76,7 @@ /** * determines if point is in the shape, regardless if other shapes are on top of it. Note: because * this method clears a temp hit canvas, and redraws the shape, it performs very poorly if executed many times - * consecutively. If possible, it's better to use the stage.getIntersections() method instead + * consecutively. If possible, it's better to use the stage.getIntersection() method instead * @method * @memberof Kinetic.Shape.prototype * @param {Object} point point can be an object containing diff --git a/src/Stage.js b/src/Stage.js index 4283346a..05d3b6b3 100644 --- a/src/Stage.js +++ b/src/Stage.js @@ -252,7 +252,8 @@ this.toDataURL(config); }, /** - * get intersection object that contains shape and pixel data + * get visible intersection object that contains shape and pixel data. This is the preferred + * method for determining if a point intersects a shape or not * @method * @memberof Kinetic.Stage.prototype * @param {Object} pos point object diff --git a/tests/js/unit/stageTests.js b/tests/js/unit/stageTests.js index 24e4d984..0e85ee48 100644 --- a/tests/js/unit/stageTests.js +++ b/tests/js/unit/stageTests.js @@ -77,7 +77,7 @@ Test.Modules.STAGE = { test(stage.getContent().className === 'kineticjs-content', 'stage DOM class name is wrong'); }, - 'stage getIntersections()': function(containerId) { + 'stage getAllIntersections()': function(containerId) { var stage = new Kinetic.Stage({ container: containerId, width: 578, @@ -116,7 +116,7 @@ Test.Modules.STAGE = { }, - 'test getIntersections': function(containerId) { + 'test getAllIntersections': function(containerId) { var stage = new Kinetic.Stage({ container: containerId, width: 578, @@ -150,50 +150,50 @@ Test.Modules.STAGE = { stage.add(layer); // test individual shapes - test(stage.getIntersections(266, 114).length === 1, '17) getIntersections should return one shape'); - test(stage.getIntersections(266, 114)[0].getId() === 'greenCircle', '19) first intersection should be greenCircle'); + test(stage.getAllIntersections(266, 114).length === 1, '17) getAllIntersections should return one shape'); + test(stage.getAllIntersections(266, 114)[0].getId() === 'greenCircle', '19) first intersection should be greenCircle'); - test(stage.getIntersections(414, 115).length === 1, '18) getIntersections should return one shape'); - test(stage.getIntersections(414, 115)[0].getId() === 'redCircle', '20) first intersection should be redCircle'); + test(stage.getAllIntersections(414, 115).length === 1, '18) getAllIntersections should return one shape'); + test(stage.getAllIntersections(414, 115)[0].getId() === 'redCircle', '20) first intersection should be redCircle'); - test(stage.getIntersections(350, 118).length === 2, '1) getIntersections should return two shapes'); - test(stage.getIntersections(350, 118)[0].getId() === 'redCircle', '2) first intersection should be redCircle'); - test(stage.getIntersections(350, 118)[1].getId() === 'greenCircle', '3) second intersection should be greenCircle'); + test(stage.getAllIntersections(350, 118).length === 2, '1) getAllIntersections should return two shapes'); + test(stage.getAllIntersections(350, 118)[0].getId() === 'redCircle', '2) first intersection should be redCircle'); + test(stage.getAllIntersections(350, 118)[1].getId() === 'greenCircle', '3) second intersection should be greenCircle'); // hide green circle. make sure only red circle is in result set greenCircle.hide(); layer.draw(); - test(stage.getIntersections(350, 118).length === 1, '4) getIntersections should return one shape'); - test(stage.getIntersections(350, 118)[0].getId() === 'redCircle', '5) first intersection should be redCircle'); + test(stage.getAllIntersections(350, 118).length === 1, '4) getAllIntersections should return one shape'); + test(stage.getAllIntersections(350, 118)[0].getId() === 'redCircle', '5) first intersection should be redCircle'); // show green circle again. make sure both circles are in result set greenCircle.show(); layer.draw(); - test(stage.getIntersections(350, 118).length === 2, '6) getIntersections should return two shapes'); - test(stage.getIntersections(350, 118)[0].getId() === 'redCircle', '7) first intersection should be redCircle'); - test(stage.getIntersections(350, 118)[1].getId() === 'greenCircle', '8) second intersection should be greenCircle'); + test(stage.getAllIntersections(350, 118).length === 2, '6) getAllIntersections should return two shapes'); + test(stage.getAllIntersections(350, 118)[0].getId() === 'redCircle', '7) first intersection should be redCircle'); + test(stage.getAllIntersections(350, 118)[1].getId() === 'greenCircle', '8) second intersection should be greenCircle'); // hide red circle. make sure only green circle is in result set redCircle.hide(); layer.draw(); - test(stage.getIntersections(350, 118).length === 1, '9) getIntersections should return one shape'); - test(stage.getIntersections(350, 118)[0].getId() === 'greenCircle', '10) first intersection should be greenCircle'); + test(stage.getAllIntersections(350, 118).length === 1, '9) getAllIntersections should return one shape'); + test(stage.getAllIntersections(350, 118)[0].getId() === 'greenCircle', '10) first intersection should be greenCircle'); // show red circle again. make sure both circles are in result set redCircle.show(); layer.draw(); - test(stage.getIntersections(350, 118).length === 2, '11) getIntersections should return two shapes'); - test(stage.getIntersections(350, 118)[0].getId() === 'redCircle', '12) first intersection should be redCircle'); - test(stage.getIntersections(350, 118)[1].getId() === 'greenCircle', '13) second intersection should be greenCircle'); + test(stage.getAllIntersections(350, 118).length === 2, '11) getAllIntersections should return two shapes'); + test(stage.getAllIntersections(350, 118)[0].getId() === 'redCircle', '12) first intersection should be redCircle'); + test(stage.getAllIntersections(350, 118)[1].getId() === 'greenCircle', '13) second intersection should be greenCircle'); // test from layer - test(layer.getIntersections(350, 118).length === 2, '14) getIntersections should return two shapes'); - test(layer.getIntersections(350, 118)[0].getId() === 'redCircle', '15) first intersection should be redCircle'); - test(layer.getIntersections(350, 118)[1].getId() === 'greenCircle', '16) second intersection should be greenCircle'); + test(layer.getAllIntersections(350, 118).length === 2, '14) getAllIntersections should return two shapes'); + test(layer.getAllIntersections(350, 118)[0].getId() === 'redCircle', '15) first intersection should be redCircle'); + test(layer.getAllIntersections(350, 118)[1].getId() === 'greenCircle', '16) second intersection should be greenCircle'); }, 'scale stage after add layer': function(containerId) {