diff --git a/src/Shape.js b/src/Shape.js
index cf607ab1..99974deb 100644
--- a/src/Shape.js
+++ b/src/Shape.js
@@ -1171,31 +1171,34 @@
* @returns {Number}
*/
- Kinetic.Factory.addPointGetterSetter(Kinetic.Shape, 'fillRadialGradientStartPoint', 0);
+ Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillRadialGradientStartPoint', {x: 0, y: 0});
/**
* set fill radial gradient start point
* @name setFillRadialGradientStartPoint
* @method
* @memberof Kinetic.Shape.prototype
- * @param {Number|Array|Object} startPoint
+ * @param {Object} startPoint
+ * @param {Number} startPoint.x
+ * @param {Number} startPoint.y
* @example
- * // set x and y
- * shape.setFillRadialGradientStartPoint(20, 40);
- *
- * // set x only
+ * // set x and y
* shape.setFillRadialGradientStartPoint({
* x: 20
- * });
- *
- * // set x and y using an array
- * shape.setFillRadialGradientStartPoint([20, 40]);
- *
- * // set x and y to the same value
- * shape.setFillRadialGradientStartPoint(5);
+ * y: 10
+ * });
*/
- /**
+ /**
+ * get fill radial gradient start point
+ * @name getFillRadialGradientStartPoint
+ * @method
+ * @memberof Kinetic.Shape.prototype
+ * @returns {Object}
+ */
+
+ Kinetic.Factory.addComponentGetterSetter(Kinetic.Shape, 'fillRadialGradientStartPoint', 'x', 0);
+ /**
* set fill radial gradient start point x
* @name setFillRadialGradientStartPointX
* @method
@@ -1203,7 +1206,15 @@
* @param {Number} x
*/
- /**
+ /**
+ * get fill radial gradient start point x
+ * @name getFillRadialGradientStartPointX
+ * @method
+ * @memberof Kinetic.Shape.prototype
+ */
+
+ Kinetic.Factory.addComponentGetterSetter(Kinetic.Shape, 'fillRadialGradientStartPoint', 'y', 0);
+ /**
* set fill radial gradient start point y
* @name setFillRadialGradientStartPointY
* @method
@@ -1211,51 +1222,40 @@
* @param {Number} y
*/
- /**
- * get fill radial gradient start point
- * @name getFillRadialGradientStartPoint
- * @method
- * @memberof Kinetic.Shape.prototype
- */
-
- /**
- * get fill radial gradient start point x
- * @name getFillRadialGradientStartPointX
- * @method
- * @memberof Kinetic.Shape.prototype
- */
-
- /**
+ /**
* get fill radial gradient start point y
* @name getFillRadialGradientStartPointY
* @method
* @memberof Kinetic.Shape.prototype
*/
- Kinetic.Factory.addPointGetterSetter(Kinetic.Shape, 'fillRadialGradientEndPoint', 0);
+ Kinetic.Factory.addGetterSetter(Kinetic.Shape, 'fillRadialGradientEndPoint', {x: 0, y: 0});
/**
* set fill radial gradient end point
* @name setFillRadialGradientEndPoint
* @method
* @memberof Kinetic.Shape.prototype
- * @param {Number|Array|Object} endPoint
+ * @param {Object} endPoint
+ * @param {Number} endPoint.x
+ * @param {Number} endPoint.y
* @example
- * // set x and y
- * shape.setFillRadialGradientEndPoint(20, 40);
- *
- * // set x only
+ * // set x and y
* shape.setFillRadialGradientEndPoint({
* x: 20
- * });
- *
- * // set x and y using an array
- * shape.setFillRadialGradientEndPoint([20, 40]);
- *
- * // set x and y to the same value
- * shape.setFillRadialGradientEndPoint(5);
+ * y: 10
+ * });
*/
+ /**
+ * get fill radial gradient end point
+ * @name getFillRadialGradientEndPoint
+ * @method
+ * @memberof Kinetic.Shape.prototype
+ * @returns {Object}
+ */
+
+ Kinetic.Factory.addComponentGetterSetter(Kinetic.Shape, 'fillRadialGradientEndPoint', 'x', 0);
/**
* set fill radial gradient end point x
* @name setFillRadialGradientEndPointX
@@ -1264,29 +1264,23 @@
* @param {Number} x
*/
- /**
- * set fill radial gradient end point y
- * @name setFillRadialGradientEndPointY
- * @method
- * @memberof Kinetic.Shape.prototype
- * @param {Number} y
- */
-
- /**
- * get fill radial gradient end point
- * @name getFillRadialGradientEndPoint
- * @method
- * @memberof Kinetic.Shape.prototype
- */
-
- /**
+ /**
* get fill radial gradient end point x
* @name getFillRadialGradientEndPointX
* @method
* @memberof Kinetic.Shape.prototype
*/
- /**
+ Kinetic.Factory.addComponentGetterSetter(Kinetic.Shape, 'fillRadialGradientEndPoint', 'y', 0);
+ /**
+ * set fill radial gradient end point y
+ * @name setFillRadialGradientEndPointY
+ * @method
+ * @memberof Kinetic.Shape.prototype
+ * @param {Number} y
+ */
+
+ /**
* get fill radial gradient end point y
* @name getFillRadialGradientEndPointY
* @method
diff --git a/src/shapes/Ellipse.js b/src/shapes/Ellipse.js
index 76d731a2..f10a494f 100644
--- a/src/shapes/Ellipse.js
+++ b/src/shapes/Ellipse.js
@@ -61,20 +61,16 @@
Kinetic.Util.extend(Kinetic.Ellipse, Kinetic.Shape);
// add getters setters
- Kinetic.Factory.addPointGetterSetter(Kinetic.Ellipse, 'radius', 0);
+ Kinetic.Factory.addGetterSetter(Kinetic.Ellipse, 'radius', {x:0,y:0});
/**
* set radius
* @name setRadius
* @method
* @memberof Kinetic.Ellipse.prototype
- * @param {Object|Array} radius
- * radius can be a number, in which the ellipse becomes a circle,
- * it can be an object with an x and y component, or it
- * can be an array in which the first element is the x component
- * and the second element is the y component. The x component
- * defines the horizontal radius and the y component
- * defines the vertical radius
+ * @param {Object} radius
+ * @param {Number} radius.x
+ * @param {Number} radius.y
*/
/**
@@ -84,4 +80,39 @@
* @memberof Kinetic.Ellipse.prototype
* @returns {Object}
*/
+ Kinetic.Factory.addComponentGetterSetter(Kinetic.Ellipse, 'radius', 'x', 0);
+
+ /**
+ * set radius x
+ * @name setRadiusX
+ * @method
+ * @memberof Kinetic.Ellipse.prototype
+ * @param {Number} x
+ */
+
+ /**
+ * get radius x
+ * @name getRadiusX
+ * @method
+ * @memberof Kinetic.Ellipse.prototype
+ * @returns {Number}
+ */
+
+ Kinetic.Factory.addComponentGetterSetter(Kinetic.Ellipse, 'radius', 'y', 0);
+
+ /**
+ * set radius y
+ * @name setRadiusY
+ * @method
+ * @memberof Kinetic.Ellipse.prototype
+ * @param {Number} y
+ */
+
+ /**
+ * get radius y
+ * @name getRadiusY
+ * @method
+ * @memberof Kinetic.Ellipse.prototype
+ * @returns {Number}
+ */
})();
\ No newline at end of file
diff --git a/test/unit/shapes/Circle-test.js b/test/unit/shapes/Circle-test.js
index 9400f959..d533b55a 100644
--- a/test/unit/shapes/Circle-test.js
+++ b/test/unit/shapes/Circle-test.js
@@ -53,8 +53,8 @@ suite('Circle', function(){
y: stage.getHeight() / 2,
radius: 70,
fillPatternImage: imageObj,
- fillPatternOffset: -5,
- fillPatternScale: 0.7,
+ fillPatternOffset: {x: -5, y: -5},
+ fillPatternScale: {x: 0.7, y: 0.7},
stroke: 'black',
strokeWidth: 4,
name: 'myCircle',
@@ -68,7 +68,7 @@ suite('Circle', function(){
assert.equal(circle.getFillPatternOffset().x, -5);
assert.equal(circle.getFillPatternOffset().y, -5);
- circle.setFillPatternOffset(1, 2);
+ circle.setFillPatternOffset({x:1, y:2});
assert.equal(circle.getFillPatternOffset().x, 1);
assert.equal(circle.getFillPatternOffset().y, 2);
@@ -95,9 +95,9 @@ suite('Circle', function(){
x: stage.getWidth() / 2,
y: stage.getHeight() / 2,
radius: 70,
- fillRadialGradientStartPoint: -20,
+ fillRadialGradientStartPoint: {x: -20, y: -20},
fillRadialGradientStartRadius: 0,
- fillRadialGradientEndPoint: -60,
+ fillRadialGradientEndPoint: {x: -60, y: -60},
fillRadialGradientEndRadius: 130,
fillRadialGradientColorStops: [0, 'red', 0.2, 'yellow', 1, 'blue'],
name: 'myCircle',
@@ -131,8 +131,8 @@ suite('Circle', function(){
x: stage.getWidth() / 2,
y: stage.getHeight() / 2,
radius: 70,
- fillLinearGradientStartPoint: -35,
- fillLinearGradientEndPoint: 35,
+ fillLinearGradientStartPoint: {x:-35,y:-35},
+ fillLinearGradientEndPoint: {x:35,y:35},
fillLinearGradientColorStops: [0, 'red', 1, 'blue'],
stroke: 'black',
strokeWidth: 4,
diff --git a/test/unit/shapes/Ellipse-test.js b/test/unit/shapes/Ellipse-test.js
index 2a135ff5..c7055aaa 100644
--- a/test/unit/shapes/Ellipse-test.js
+++ b/test/unit/shapes/Ellipse-test.js
@@ -7,7 +7,7 @@ suite('Ellipse', function(){
var ellipse = new Kinetic.Ellipse({
x: stage.getWidth() / 2,
y: stage.getHeight() / 2,
- radius: [70, 35],
+ radius: {x:70, y:35},
fill: 'green',
stroke: 'black',
strokeWidth: 8