UNPKG

polygonjs-engine

Version:

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

74 lines (67 loc) 2.53 kB
import {BaseNodeType} from '../../../nodes/_Base'; import {BaseParamType} from '../../../params/_Base'; import {NodeJsonImporter} from './Node'; // import {BaseNodeObjJsonImporter} from './node/Obj'; // import {BaseNodeSopSubnetworkJsonImporter} from './node/Subnetwork'; import {ParamJsonImporter} from './Param'; import {ParamMultipleJsonImporter} from './param/Multiple'; import {ParamStringJsonImporter} from './param/String'; import {ParamRampJsonImporter} from './param/Ramp'; // import {TypedObjNode} from '../../../nodes/obj/_Base'; import {TypedMultipleParam} from '../../../params/_Multiple'; import {StringParam} from '../../../params/String'; import {RampParam} from '../../../params/Ramp'; // import {PolySopNode} from '../../../nodes/sop/Poly'; // import {PolyObjNode} from '../../../nodes/obj/Poly'; import {PolyNodeJsonImporter} from './nodes/Poly'; export class JsonImportDispatcher { 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 PolyNodeJsonImporter(node); } return new NodeJsonImporter(node); } static dispatch_param(param: BaseParamType) { 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); } } // export class CodeImporterVisitor { // static node(node: BaseNode): NodeCodeImporter { // return new NodeCodeImporter(node); // } // static node_obj(node: BaseNode) { // return new BaseNodeObjCodeImporter(node); // } // static node_sop_subnetwork(node: BaseNode) { // return new BaseNodeSopSubnetworkCodeImporter(node); // } // static visit_param(param: BaseParam) { // return new ParamCodeImporter(param); // } // static param_multiple(param: BaseParam) { // return new ParamMultipleCodeImporter(param); // } // static param_numeric(param: BaseParam) { // return new ParamNumericCodeImporter(param); // } // static param_operator_path(param: BaseParam) { // return new ParamOperatorPathCodeImporter(param); // } // static param_string(param: BaseParam) { // return new ParamStringCodeImporter(param); // } // static param_ramp(param: BaseParam) { // return new ParamRampCodeImporter(param); // } // }