@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
41 lines (40 loc) • 1.5 kB
JavaScript
;
import { NodeJsonExporter } from "./Node";
import { ParamJsonExporter } from "./Param";
import { ParamNumericJsonExporter } from "./param/Numeric";
import { ParamNodePathJsonExporter } from "./param/NodePath";
import { ParamParamPathJsonExporter } from "./param/ParamPath";
import { ParamStringJsonExporter } from "./param/String";
import { ParamRampJsonExporter } from "./param/Ramp";
import { TypedNumericParam } from "../../../params/_Numeric";
import { NodePathParam } from "../../../params/NodePath";
import { ParamPathParam } from "../../../params/ParamPath";
import { StringParam } from "../../../params/String";
import { RampParam } from "../../../params/Ramp";
import { PolyNodeJsonExporter } from "./nodes/Poly";
export class JsonExportDispatcher {
dispatchNode(node) {
if (node.polyNodeController) {
return new PolyNodeJsonExporter(node, this);
}
return new NodeJsonExporter(node, this);
}
dispatchParam(param) {
if (param instanceof TypedNumericParam) {
return new ParamNumericJsonExporter(param);
}
if (param instanceof NodePathParam) {
return new ParamNodePathJsonExporter(param);
}
if (param instanceof ParamPathParam) {
return new ParamParamPathJsonExporter(param);
}
if (param instanceof StringParam) {
return new ParamStringJsonExporter(param);
}
if (param instanceof RampParam) {
return new ParamRampJsonExporter(param);
}
return new ParamJsonExporter(param);
}
}