diff --git a/src/Global.ts b/src/Global.ts index d366fae3..8c2d134c 100644 --- a/src/Global.ts +++ b/src/Global.ts @@ -149,7 +149,7 @@ export const Konva = { */ dragDistance: 3, /** - * Use degree values for angle properties. You may set this property to false if you want to use radiant values. + * Use degree values for angle properties. You may set this property to false if you want to use radian values. * @property angleDeg * @default true * @memberof Konva diff --git a/src/shapes/Transformer.ts b/src/shapes/Transformer.ts index 6f5ac74f..bb08ac59 100644 --- a/src/shapes/Transformer.ts +++ b/src/shapes/Transformer.ts @@ -19,6 +19,7 @@ export interface TransformerConfig extends ContainerConfig { resizeEnabled?: boolean; rotateEnabled?: boolean; rotationSnaps?: Array; + rotationSnapTolerance?: number; rotateAnchorOffset?: number; borderEnabled?: boolean; borderStroke?: string; @@ -154,6 +155,7 @@ var MAX_SAFE_INTEGER = 100000000; * @param {Boolean} [config.resizeEnabled] Default is true * @param {Boolean} [config.rotateEnabled] Default is true * @param {Array} [config.rotationSnaps] Array of angles for rotation snaps. Default is [] + * @param {Number} [config.rotationSnapTolerance] Snapping tolerance. If closer than this it will snap. Default is 5 * @param {Number} [config.rotateAnchorOffset] Default is 50 * @param {Number} [config.padding] Default is 0 * @param {Boolean} [config.borderEnabled] Should we draw border? Default is true @@ -596,7 +598,7 @@ export class Transformer extends Group { var newAlpha = Util._degToRad(newRotation); var snaps = this.rotationSnaps(); - var offset = 0.1; + var offset = Konva.getAngle(this.rotationSnapTolerance()); for (var i = 0; i < snaps.length; i++) { var angle = Konva.getAngle(snaps[i]); @@ -901,6 +903,7 @@ export class Transformer extends Group { resizeEnabled: GetSet; rotateEnabled: GetSet; rotateAnchorOffset: GetSet; + rotationSnapTolerance: GetSet; padding: GetSet; borderEnabled: GetSet; borderStroke: GetSet; @@ -1037,6 +1040,26 @@ Factory.addGetterSetter( getNumberValidator() ); +/** + * get/set distance for rotation tolerance + * @name Konva.Transformer#rotationSnapTolerance + * @method + * @param {Number} tolerance + * @returns {Number} + * @example + * // get + * var rotationSnapTolerance = transformer.rotationSnapTolerance(); + * + * // set + * transformer.rotationSnapTolerance(100); + */ +Factory.addGetterSetter( + Transformer, + 'rotationSnapTolerance', + 5, + getNumberValidator() +); + /** * get/set visibility of border * @name Konva.Transformer#borderEnabled