@tsparticles/plugin-canvas-mask
Version:
tsParticles canvas mask plugin
69 lines (68 loc) • 2.56 kB
JavaScript
(function (factory) {
if (typeof module === "object" && typeof module.exports === "object") {
var v = factory(require, exports);
if (v !== undefined) module.exports = v;
}
else if (typeof define === "function" && define.amd) {
define(["require", "exports", "@tsparticles/engine", "./CanvasMaskOverride.js", "./CanvasMaskPixels.js", "./ImageMask.js", "./TextMask.js"], factory);
}
})(function (require, exports) {
"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;
});