@tsparticles/plugin-polygon-mask
Version:
tsParticles polygon mask plugin
52 lines (51 loc) • 1.67 kB
JavaScript
import { deepExtend, isNull, isString, } 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 {
constructor(engine) {
this.draw = new PolygonMaskDraw(engine);
this.enable = false;
this.inline = new PolygonMaskInline();
this.move = new PolygonMaskMove();
this.scale = 1;
this.type = PolygonMaskType.none;
}
load(data) {
if (isNull(data)) {
return;
}
this.draw.load(data.draw);
this.inline.load(data.inline);
this.move.load(data.move);
if (data.scale !== undefined) {
this.scale = data.scale;
}
if (data.type !== undefined) {
this.type = data.type;
}
if (data.enable !== undefined) {
this.enable = data.enable;
}
else {
this.enable = this.type !== PolygonMaskType.none;
}
if (data.url !== undefined) {
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);
}
}
}