@tsparticles/plugin-polygon-mask
Version:
tsParticles polygon mask plugin
50 lines (49 loc) • 1.58 kB
JavaScript
import { deepExtend, isNull, isString, loadProperty, } from "@tsparticles/engine";
import { PolygonMaskDraw } from "./PolygonMaskDraw.js";
import { PolygonMaskInline } from "./PolygonMaskInline.js";
import { PolygonMaskLocalSvg } from "./PolygonMaskLocalSvg.js";
import { PolygonMaskMove } from "./PolygonMaskMove.js";
import { PolygonMaskType } from "../../Enums/PolygonMaskType.js";
export class PolygonMask {
data;
draw;
enable = false;
inline = new PolygonMaskInline();
move = new PolygonMaskMove();
position;
scale = 1;
type = PolygonMaskType.none;
url;
constructor(pluginManager) {
this.draw = new PolygonMaskDraw(pluginManager);
}
load(data) {
if (isNull(data)) {
return;
}
this.draw.load(data.draw);
this.inline.load(data.inline);
this.move.load(data.move);
loadProperty(this, "scale", data.scale);
loadProperty(this, "type", data.type);
if (data.enable !== undefined) {
this.enable = data.enable;
}
else {
this.enable = this.type !== PolygonMaskType.none;
}
loadProperty(this, "url", data.url);
if (data.data !== undefined) {
if (isString(data.data)) {
this.data = data.data;
}
else {
this.data = new PolygonMaskLocalSvg();
this.data.load(data.data);
}
}
if (data.position !== undefined) {
this.position = deepExtend({}, data.position);
}
}
}