UNPKG

tldraw

Version:

A tiny little drawing editor.

44 lines (43 loc) 1.31 kB
import { Ellipse2d, Rectangle2d } from "@tldraw/editor"; import { isImagePointTransparent } from "./ImageAlphaCache.mjs"; function extractAlphaConfig(config) { return { alphaDataGetter: config.alphaDataGetter, crop: config.crop, flipX: config.flipX, flipY: config.flipY }; } class ImageRectangle2d extends Rectangle2d { alphaConfig; constructor(config) { super(config); this.alphaConfig = extractAlphaConfig(config); } hitTestPoint(point, margin = 0, hitInside = false) { if (!super.hitTestPoint(point, margin, hitInside)) return false; return !isImagePointTransparent(this.alphaConfig, point, this.bounds); } ignoreHit(point) { return isImagePointTransparent(this.alphaConfig, point, this.bounds); } } class ImageEllipse2d extends Ellipse2d { alphaConfig; constructor(config) { super(config); this.alphaConfig = extractAlphaConfig(config); } hitTestPoint(point, margin = 0, hitInside = false) { if (!super.hitTestPoint(point, margin, hitInside)) return false; return !isImagePointTransparent(this.alphaConfig, point, this.bounds); } ignoreHit(point) { return isImagePointTransparent(this.alphaConfig, point, this.bounds); } } export { ImageEllipse2d, ImageRectangle2d }; //# sourceMappingURL=ImageAlphaGeometry.mjs.map