fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
2 lines • 884 B
JavaScript
import{ROTATING as e}from"../constants.min.mjs";import{radiansToDegrees as t}from"../util/misc/radiansDegreesConversion.min.mjs";import{NOT_ALLOWED_CURSOR as n,isLocked as r}from"./util.min.mjs";import{wrapWithFireEvent as i}from"./wrapWithFireEvent.min.mjs";import{wrapWithFixedAnchor as a}from"./wrapWithFixedAnchor.min.mjs";const o=(e,t,r)=>r.lockRotation?n:t.cursorStyle,s=i(e,a((e,{target:n,ex:i,ey:a,theta:o,originX:s,originY:c},l,u)=>{let d=n.getPositionByOrigin(s,c);if(r(n,`lockRotation`))return!1;let f=Math.atan2(a-d.y,i-d.x),p=t(Math.atan2(u-d.y,l-d.x)-f+o);if(n.snapAngle&&n.snapAngle>0){let e=n.snapAngle,t=n.snapThreshold||e,r=Math.ceil(p/e)*e,i=Math.floor(p/e)*e;Math.abs(p-i)<t?p=i:Math.abs(p-r)<t&&(p=r)}p<0&&(p=360+p),p%=360;let m=n.angle!==p;return n.angle=p,m}));export{o as rotationStyleHandler,s as rotationWithSnapping};
//# sourceMappingURL=rotate.min.mjs.map