@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
40 lines (39 loc) • 1.41 kB
JavaScript
;
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);
}
}