UNPKG

@tsparticles/plugin-canvas-mask

Version:

tsParticles canvas mask plugin

50 lines (49 loc) 1.46 kB
import { isNull, loadProperty, } from "@tsparticles/engine"; import { CanvasMaskOverride } from "./CanvasMaskOverride.js"; import { CanvasMaskPixels } from "./CanvasMaskPixels.js"; import { ImageMask } from "./ImageMask.js"; import { TextMask } from "./TextMask.js"; export class CanvasMask { element; enable = false; image; override = new CanvasMaskOverride(); pixels = new CanvasMaskPixels(); position; scale = 1; selector; text; constructor() { this.position = { x: 50, y: 50, }; } load(data) { if (isNull(data)) { return; } if (data.element !== undefined && data.element instanceof HTMLCanvasElement) { this.element = data.element; } loadProperty(this, "enable", data.enable); if (data.image) { this.image ??= new ImageMask(); this.image.load(data.image); } this.pixels.load(data.pixels); if (data.position) { this.position = { x: data.position.x ?? this.position.x, y: data.position.y ?? this.position.y, }; } this.override.load(data.override); loadProperty(this, "scale", data.scale); loadProperty(this, "selector", data.selector); if (data.text) { this.text ??= new TextMask(); this.text.load(data.text); } } }