UNPKG

@tsparticles/plugin-polygon-mask

Version:

tsParticles polygon mask plugin

41 lines (40 loc) 1.78 kB
(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; });