@tsparticles/plugin-polygon-mask
Version:
tsParticles polygon mask plugin
41 lines (40 loc) • 1.78 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", "./Options/Classes/PolygonMask.js", "./PolygonMaskInstance.js", "./Enums/PolygonMaskType.js"], factory);
}
})(function (require, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PolygonMaskPlugin = void 0;
const PolygonMask_js_1 = require("./Options/Classes/PolygonMask.js");
const PolygonMaskInstance_js_1 = require("./PolygonMaskInstance.js");
const PolygonMaskType_js_1 = require("./Enums/PolygonMaskType.js");
class PolygonMaskPlugin {
constructor(engine) {
this.id = "polygonMask";
this._engine = engine;
}
getPlugin(container) {
return Promise.resolve(new PolygonMaskInstance_js_1.PolygonMaskInstance(container, this._engine));
}
loadOptions(options, source) {
if (!this.needsPlugin(options) && !this.needsPlugin(source)) {
return;
}
let polygonOptions = options.polygon;
if (polygonOptions?.load === undefined) {
options.polygon = polygonOptions = new PolygonMask_js_1.PolygonMask(this._engine);
}
polygonOptions.load(source?.polygon);
}
needsPlugin(options) {
return (options?.polygon?.enable ??
(options?.polygon?.type !== undefined && options.polygon.type !== PolygonMaskType_js_1.PolygonMaskType.none));
}
}
exports.PolygonMaskPlugin = PolygonMaskPlugin;
});