mirror of
https://github.com/konvajs/konva.git
synced 2025-12-05 03:24:23 +08:00
added new stage.getIntersects() method which allows you to obtain all the shapes that intersect a given point. Also enhanced all methods that require an x or y by allowing either two arguments to be passed in or an object to be passed in. Example foo(100, 50) or foo({x:100, y:50});
This commit is contained in:
@@ -118,6 +118,18 @@ Kinetic.GlobalObject = {
|
||||
},
|
||||
_isFunction: function(obj) {
|
||||
return !!(obj && obj.constructor && obj.call && obj.apply);
|
||||
},
|
||||
_getPoint: function(arg) {
|
||||
|
||||
if(arg.length === 1) {
|
||||
return arg[0];
|
||||
}
|
||||
else {
|
||||
return {
|
||||
x: arg[0],
|
||||
y: arg[1]
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
13
src/Node.js
13
src/Node.js
@@ -287,12 +287,12 @@ Kinetic.Node.prototype = {
|
||||
},
|
||||
/**
|
||||
* set node position
|
||||
* @param {Number} x
|
||||
* @param {Number} y
|
||||
* @param {Object} point
|
||||
*/
|
||||
setPosition: function(x, y) {
|
||||
this.attrs.x = x;
|
||||
this.attrs.y = y;
|
||||
setPosition: function() {
|
||||
var pos = Kinetic.GlobalObject._getPoint(arguments);
|
||||
this.attrs.x = pos.x;
|
||||
this.attrs.y = pos.y;
|
||||
},
|
||||
/**
|
||||
* set node x position
|
||||
@@ -353,7 +353,8 @@ Kinetic.Node.prototype = {
|
||||
* @param {Object} pos object containing an x and
|
||||
* y property
|
||||
*/
|
||||
setAbsolutePosition: function(pos) {
|
||||
setAbsolutePosition: function() {
|
||||
var pos = Kinetic.GlobalObject._getPoint(arguments);
|
||||
/*
|
||||
* save rotation and scale and
|
||||
* then remove them from the transform
|
||||
|
||||
@@ -173,7 +173,8 @@ Kinetic.Shape.prototype = {
|
||||
/**
|
||||
* determines if point is in the shape
|
||||
*/
|
||||
intersects: function(pos) {
|
||||
intersects: function() {
|
||||
var pos = Kinetic.GlobalObject._getPoint(arguments);
|
||||
var stage = this.getStage();
|
||||
|
||||
if(this.attrs.detectionType === 'path') {
|
||||
|
||||
15
src/Stage.js
15
src/Stage.js
@@ -351,11 +351,22 @@ Kinetic.Stage.prototype = {
|
||||
return this.attrs.height;
|
||||
},
|
||||
/**
|
||||
* get shapes in point
|
||||
* get shapes that intersect a point
|
||||
* @param {Object} point
|
||||
*/
|
||||
getShapesInPoint: function(pos) {
|
||||
getIntersections: function() {
|
||||
var pos = Kinetic.GlobalObject._getPoint(arguments);
|
||||
var arr = [];
|
||||
var shapes = this.get('Shape');
|
||||
|
||||
for(var n = 0; n < shapes.length; n++) {
|
||||
var shape = shapes[n];
|
||||
if(shape.intersects(pos)) {
|
||||
arr.push(shape);
|
||||
}
|
||||
}
|
||||
|
||||
return arr;
|
||||
},
|
||||
/**
|
||||
* detect event
|
||||
|
||||
Reference in New Issue
Block a user