tldraw
Version:
A tiny little drawing editor.
8 lines (7 loc) • 2.88 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../../src/lib/shapes/image/ImageAlphaGeometry.ts"],
"sourcesContent": ["import { Ellipse2d, Geometry2dOptions, Rectangle2d, VecLike } from '@tldraw/editor'\nimport { ImageAlphaGeometryConfig, isImagePointTransparent } from './ImageAlphaCache'\n\nfunction extractAlphaConfig(config: ImageAlphaGeometryConfig): ImageAlphaGeometryConfig {\n\treturn {\n\t\talphaDataGetter: config.alphaDataGetter,\n\t\tcrop: config.crop,\n\t\tflipX: config.flipX,\n\t\tflipY: config.flipY,\n\t}\n}\n\n/** @internal */\nexport class ImageRectangle2d extends Rectangle2d {\n\tprivate alphaConfig: ImageAlphaGeometryConfig\n\n\tconstructor(\n\t\tconfig: Omit<Geometry2dOptions, 'isClosed'> & {\n\t\t\tx?: number\n\t\t\ty?: number\n\t\t\twidth: number\n\t\t\theight: number\n\t\t} & ImageAlphaGeometryConfig\n\t) {\n\t\tsuper(config)\n\t\tthis.alphaConfig = extractAlphaConfig(config)\n\t}\n\n\toverride hitTestPoint(point: VecLike, margin = 0, hitInside = false): boolean {\n\t\tif (!super.hitTestPoint(point, margin, hitInside)) return false\n\t\treturn !isImagePointTransparent(this.alphaConfig, point, this.bounds)\n\t}\n\n\toverride ignoreHit(point: VecLike): boolean {\n\t\treturn isImagePointTransparent(this.alphaConfig, point, this.bounds)\n\t}\n}\n\n/** @internal */\nexport class ImageEllipse2d extends Ellipse2d {\n\tprivate alphaConfig: ImageAlphaGeometryConfig\n\n\tconstructor(\n\t\tconfig: Omit<Geometry2dOptions, 'isClosed'> & {\n\t\t\twidth: number\n\t\t\theight: number\n\t\t} & ImageAlphaGeometryConfig\n\t) {\n\t\tsuper(config)\n\t\tthis.alphaConfig = extractAlphaConfig(config)\n\t}\n\n\toverride hitTestPoint(point: VecLike, margin = 0, hitInside = false): boolean {\n\t\tif (!super.hitTestPoint(point, margin, hitInside)) return false\n\t\treturn !isImagePointTransparent(this.alphaConfig, point, this.bounds)\n\t}\n\n\toverride ignoreHit(point: VecLike): boolean {\n\t\treturn isImagePointTransparent(this.alphaConfig, point, this.bounds)\n\t}\n}\n"],
"mappings": "AAAA,SAAS,WAA8B,mBAA4B;AACnE,SAAmC,+BAA+B;AAElE,SAAS,mBAAmB,QAA4D;AACvF,SAAO;AAAA,IACN,iBAAiB,OAAO;AAAA,IACxB,MAAM,OAAO;AAAA,IACb,OAAO,OAAO;AAAA,IACd,OAAO,OAAO;AAAA,EACf;AACD;AAGO,MAAM,yBAAyB,YAAY;AAAA,EACzC;AAAA,EAER,YACC,QAMC;AACD,UAAM,MAAM;AACZ,SAAK,cAAc,mBAAmB,MAAM;AAAA,EAC7C;AAAA,EAES,aAAa,OAAgB,SAAS,GAAG,YAAY,OAAgB;AAC7E,QAAI,CAAC,MAAM,aAAa,OAAO,QAAQ,SAAS,EAAG,QAAO;AAC1D,WAAO,CAAC,wBAAwB,KAAK,aAAa,OAAO,KAAK,MAAM;AAAA,EACrE;AAAA,EAES,UAAU,OAAyB;AAC3C,WAAO,wBAAwB,KAAK,aAAa,OAAO,KAAK,MAAM;AAAA,EACpE;AACD;AAGO,MAAM,uBAAuB,UAAU;AAAA,EACrC;AAAA,EAER,YACC,QAIC;AACD,UAAM,MAAM;AACZ,SAAK,cAAc,mBAAmB,MAAM;AAAA,EAC7C;AAAA,EAES,aAAa,OAAgB,SAAS,GAAG,YAAY,OAAgB;AAC7E,QAAI,CAAC,MAAM,aAAa,OAAO,QAAQ,SAAS,EAAG,QAAO;AAC1D,WAAO,CAAC,wBAAwB,KAAK,aAAa,OAAO,KAAK,MAAM;AAAA,EACrE;AAAA,EAES,UAAU,OAAyB;AAC3C,WAAO,wBAAwB,KAAK,aAAa,OAAO,KAAK,MAAM;AAAA,EACpE;AACD;",
"names": []
}