@tsparticles/plugin-canvas-mask
Version:
tsParticles canvas mask plugin
50 lines (49 loc) • 1.46 kB
JavaScript
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);
}
}
}