@tsparticles/plugin-canvas-mask
Version:
tsParticles canvas mask plugin
59 lines (58 loc) • 1.88 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CanvasMask = void 0;
const engine_1 = require("@tsparticles/engine");
const CanvasMaskOverride_js_1 = require("./CanvasMaskOverride.js");
const CanvasMaskPixels_js_1 = require("./CanvasMaskPixels.js");
const ImageMask_js_1 = require("./ImageMask.js");
const TextMask_js_1 = require("./TextMask.js");
class CanvasMask {
constructor() {
this.enable = false;
this.override = new CanvasMaskOverride_js_1.CanvasMaskOverride();
this.pixels = new CanvasMaskPixels_js_1.CanvasMaskPixels();
this.position = {
x: 50,
y: 50,
};
this.scale = 1;
}
load(data) {
if ((0, engine_1.isNull)(data)) {
return;
}
if (data.element !== undefined && data.element instanceof HTMLCanvasElement) {
this.element = data.element;
}
if (data.enable !== undefined) {
this.enable = data.enable;
}
if (data.image) {
if (!this.image) {
this.image = new ImageMask_js_1.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);
if (data.scale !== undefined) {
this.scale = data.scale;
}
if (data.selector !== undefined) {
this.selector = data.selector;
}
if (data.text) {
if (!this.text) {
this.text = new TextMask_js_1.TextMask();
}
this.text.load(data.text);
}
}
}
exports.CanvasMask = CanvasMask;