UNPKG

@tsparticles/plugin-polygon-mask

Version:

tsParticles polygon mask plugin

50 lines (49 loc) 1.58 kB
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); } } }