2012-03-07 13:45:48 +08:00
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
|
|
// Polygon
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
2012-07-09 12:56:52 +08:00
|
|
|
/**
|
|
|
|
* Polygon constructor. Polygons are defined by an array of points
|
|
|
|
* @constructor
|
|
|
|
* @augments Kinetic.Shape
|
|
|
|
* @param {Object} config
|
|
|
|
*/
|
2012-07-04 03:07:27 +08:00
|
|
|
Kinetic.Polygon = Kinetic.Shape.extend({
|
|
|
|
init: function(config) {
|
|
|
|
this.setDefaultAttrs({
|
|
|
|
points: []
|
|
|
|
});
|
2012-04-06 14:48:58 +08:00
|
|
|
|
2012-07-04 03:07:27 +08:00
|
|
|
this.shapeType = "Polygon";
|
2012-07-19 14:28:45 +08:00
|
|
|
config.drawFunc = function(context) {
|
2012-07-04 03:07:27 +08:00
|
|
|
context.beginPath();
|
|
|
|
context.moveTo(this.attrs.points[0].x, this.attrs.points[0].y);
|
|
|
|
for(var n = 1; n < this.attrs.points.length; n++) {
|
|
|
|
context.lineTo(this.attrs.points[n].x, this.attrs.points[n].y);
|
|
|
|
}
|
|
|
|
context.closePath();
|
2012-07-19 14:28:45 +08:00
|
|
|
this.fill(context);
|
|
|
|
this.stroke(context);
|
2012-07-04 03:07:27 +08:00
|
|
|
};
|
|
|
|
// call super constructor
|
|
|
|
this._super(config);
|
|
|
|
}
|
|
|
|
});
|
2012-06-11 04:07:09 +08:00
|
|
|
|
2012-07-04 03:07:27 +08:00
|
|
|
// add getters setters
|
|
|
|
Kinetic.Node.addGettersSetters(Kinetic.Polygon, ['points']);
|
2012-06-11 04:07:09 +08:00
|
|
|
|
2012-06-15 05:56:13 +08:00
|
|
|
/**
|
|
|
|
* set points array
|
|
|
|
* @name setPoints
|
|
|
|
* @methodOf Kinetic.Polygon.prototype
|
|
|
|
* @param {Array} points can be an array of point objects or an array
|
|
|
|
* of Numbers. e.g. [{x:1,y:2},{x:3,y:4}] or [1,2,3,4]
|
|
|
|
*/
|
|
|
|
|
2012-06-11 04:07:09 +08:00
|
|
|
/**
|
|
|
|
* get points array
|
2012-06-14 17:19:51 +08:00
|
|
|
* @name getPoints
|
|
|
|
* @methodOf Kinetic.Polygon.prototype
|
2012-06-11 04:07:09 +08:00
|
|
|
*/
|