polygonjs-engine
Version:
node-based webgl 3D engine https://polygonjs.com
53 lines (48 loc) • 2.04 kB
text/typescript
import {BaseNodeType} from '../../../nodes/_Base';
import {BaseParamType} from '../../../params/_Base';
import {NodeJsonExporter} from './Node';
// import {BaseNodeObjJsonExporter} from './node/Obj';
// import {BaseNodeSopSubnetworkJsonExporter} from './node/Subnetwork';
import {ParamJsonExporter} from './Param';
// import {ParamMultipleJsonExporter} from './param/Multiple';
import {ParamNumericJsonExporter} from './param/Numeric';
import {ParamOperatorPathJsonExporter} from './param/OperatorPath';
import {ParamStringJsonExporter} from './param/String';
import {ParamRampJsonExporter} from './param/Ramp';
// import {TypedObjNode} from '../../../nodes/obj/_Base';
// import {TypedMultipleParam} from '../../../params/_Multiple';
import {TypedNumericParam} from '../../../params/_Numeric';
import {OperatorPathParam} from '../../../params/OperatorPath';
import {StringParam} from '../../../params/String';
import {RampParam} from '../../../params/Ramp';
// import {PolySopNode} from '../../../nodes/sop/Poly';
// import {PolyObjNode} from '../../../nodes/obj/Poly';
import {PolyNodeJsonExporter} from './nodes/Poly';
export class JsonExportDispatcher {
static dispatch_node(node: BaseNodeType) {
// using PolySopNode and PolyObjNode seem to create circular dependency with webpack
// if (node instanceof PolySopNode || node instanceof PolyObjNode)
if (node.polyNodeController) {
return new PolyNodeJsonExporter(node);
}
return new NodeJsonExporter(node);
}
static dispatch_param(param: BaseParamType) {
// if (param instanceof TypedMultipleParam) {
// return new ParamMultipleJsonExporter(param);
// }
if (param instanceof TypedNumericParam) {
return new ParamNumericJsonExporter(param);
}
if (param instanceof OperatorPathParam) {
return new ParamOperatorPathJsonExporter(param);
}
if (param instanceof StringParam) {
return new ParamStringJsonExporter(param);
}
if (param instanceof RampParam) {
return new ParamRampJsonExporter(param);
}
return new ParamJsonExporter(param);
}
}