@tsparticles/plugin-polygon-mask
Version:
tsParticles polygon mask plugin
28 lines (27 loc) • 1.05 kB
JavaScript
import { PolygonMask } from "./Options/Classes/PolygonMask.js";
import { PolygonMaskType } from "./Enums/PolygonMaskType.js";
export class PolygonMaskPlugin {
id = "polygon-mask";
#pluginManager;
constructor(pluginManager) {
this.#pluginManager = pluginManager;
}
async getPlugin(container) {
const { PolygonMaskInstance } = await import("./PolygonMaskInstance.js");
return new PolygonMaskInstance(this.#pluginManager, container);
}
loadOptions(_container, options, source) {
if (!this.needsPlugin(options) && !this.needsPlugin(source)) {
return;
}
let polygonOptions = options.polygon;
if (polygonOptions?.load === undefined) {
options.polygon = polygonOptions = new PolygonMask(this.#pluginManager);
}
polygonOptions.load(source?.polygon);
}
needsPlugin(options) {
return (options?.polygon?.enable ??
(options?.polygon?.type !== undefined && options.polygon.type !== PolygonMaskType.none));
}
}