UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

40 lines (39 loc) 1.41 kB
"use strict"; import { NodeJsonImporter } from "./Node"; import { ParamJsonImporter } from "./Param"; import { ParamMultipleJsonImporter } from "./param/Multiple"; import { ParamStringJsonImporter } from "./param/String"; import { ParamRampJsonImporter } from "./param/Ramp"; import { TypedMultipleParam } from "../../../params/_Multiple"; import { StringParam } from "../../../params/String"; import { RampParam } from "../../../params/Ramp"; import { PolyNodeJsonImporter } from "./nodes/Poly"; import { NodesJsonImporter } from "./Nodes"; export class JsonImportDispatcher { dispatchNode(node) { if (node.polyNodeController) { return this._dispatchPolyNode(node); } return this.dispatchNonPolyNode(node); } _dispatchPolyNode(node) { const nodesImporter = new NodesJsonImporter(node, this); return new PolyNodeJsonImporter(node, this, nodesImporter); } dispatchNonPolyNode(node) { const nodesImporter = new NodesJsonImporter(node, this); return new NodeJsonImporter(node, this, nodesImporter); } dispatchParam(param) { if (param instanceof TypedMultipleParam) { return new ParamMultipleJsonImporter(param); } if (param instanceof StringParam) { return new ParamStringJsonImporter(param); } if (param instanceof RampParam) { return new ParamRampJsonImporter(param); } return new ParamJsonImporter(param); } }