fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
3 lines (2 loc) • 2.08 kB
JavaScript
import{objectSpread2 as t}from"../../../_virtual/_rollupPluginBabelHelpers.min.mjs";import{Point as i}from"../../Point.min.mjs";import{calcDimensionsMatrix as e,transformPoint as s}from"../../util/misc/matrix.min.mjs";import{sizeAfterTransform as n}from"../../util/misc/objectTransforms.min.mjs";import{degreesToRadians as r}from"../../util/misc/radiansDegreesConversion.min.mjs";import{CommonMethods as o}from"../../CommonMethods.min.mjs";import{resolveOrigin as a}from"../../util/misc/resolveOrigin.min.mjs";import{CENTER as h,LEFT as m,TOP as l}from"../../constants.min.mjs";class g extends o{_getTransformedDimensions(){let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const r=t({scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,width:this.width,height:this.height,strokeWidth:this.strokeWidth},s),o=r.strokeWidth;let a=o,h=0;this.strokeUniform&&(a=0,h=o);const m=r.width+a,l=r.height+a;let g;return g=0===r.skewX&&0===r.skewY?new i(m*r.scaleX,l*r.scaleY):n(m,l,e(r)),g.scalarAdd(h)}translateToGivenOrigin(t,e,s,n,r){let o=t.x,h=t.y;const m=a(n)-a(e),l=a(r)-a(s);if(m||l){const t=this._getTransformedDimensions();o+=m*t.x,h+=l*t.y}return new i(o,h)}translateToCenterPoint(t,i,e){const s=this.translateToGivenOrigin(t,i,e,h,h);return this.angle?s.rotate(r(this.angle),t):s}translateToOriginPoint(t,i,e){const s=this.translateToGivenOrigin(t,h,h,i,e);return this.angle?s.rotate(r(this.angle),t):s}getCenterPoint(){const t=this.getRelativeCenterPoint();return this.group?s(t,this.group.calcTransformMatrix()):t}getRelativeCenterPoint(){return this.translateToCenterPoint(new i(this.left,this.top),this.originX,this.originY)}getPointByOrigin(t,i){return this.translateToOriginPoint(this.getRelativeCenterPoint(),t,i)}setPositionByOrigin(t,i,e){const s=this.translateToCenterPoint(t,i,e),n=this.translateToOriginPoint(s,this.originX,this.originY);this.set({left:n.x,top:n.y})}_getLeftTopCoords(){return this.translateToOriginPoint(this.getRelativeCenterPoint(),m,l)}}export{g as ObjectOrigin};
//# sourceMappingURL=ObjectOrigin.min.mjs.map