diff options
Diffstat (limited to 'NT/src/factory.cpp')
| -rw-r--r-- | NT/src/factory.cpp | 96 |
1 files changed, 2 insertions, 94 deletions
diff --git a/NT/src/factory.cpp b/NT/src/factory.cpp index 3567f83..dd39533 100644 --- a/NT/src/factory.cpp +++ b/NT/src/factory.cpp @@ -22,110 +22,18 @@ bool Node_factory::list_node(const string &t,xmlIO XML){ bool Node_factory::list_node(const string &t,Json::Value &JSON){ for (auto& type: type_map) { if (type.first==t) { - JSON["node"]=list_node(type.second); + JSON["node"]=type.second->list_json(); return true; } } JSON["error"]="Node /"+t+"/ not found"; return false; }; -Json::Value Node_factory::list_node(Rotor::Node* _node){ - Json::Value node; - node["node_type"]=_node->node_type; - node["title"]=_node->title; - node["output_type"]=_node->output_type; - node["description"]=_node->description; - node["node_id"]=_node->node_id; - node["ui_type"]=_node->ui_type; - if (_node->vars.size()){ - node["vars"]=Json::arrayValue; - for (auto& var: _node->vars) { - string type=var.second->get_type(); - Json::Value newvar; - newvar["type"]=type; - newvar["connectable"]=var.second->connectable?"yes":"no"; - if (dynamic_cast<Variable_array*>(var.second)){ - newvar["input"]=Json::arrayValue; - for (auto& element: dynamic_cast<Variable_array*>(var.second)->values) { - Json::Value newvalue; - newvar["input"].append(newvalue); - } - } - else { - newvar["input"]=Json::Value(); - } - node["vars"].append(newvar); - } - } -/* - if (_node->inputs.size()){ - node["signal_inputs"]=Json::arrayValue; - for (auto& input: _node->inputs) { - Json::Value signal_input; - signal_input["title"]=input->title; - signal_input["description"]=input->description; - node["signal_inputs"].append(signal_input); - } - } - if (dynamic_cast<Image_node*> (_node)!=nullptr) { - if ((dynamic_cast<Image_node*>(_node))->image_inputs.size()){ - node["image_inputs"]=Json::arrayValue; - for (auto& input: (dynamic_cast<Image_node*>(_node))->image_inputs) { - Json::Value image_input; - image_input["title"]=input->title; - image_input["description"]=input->description; - node["image_inputs"].append(image_input); - } - } - } - if (_node->parameters.size()){ - node["parameters"]=Json::arrayValue; - for (auto& param: _node->parameters) { - Json::Value parameter; - parameter["name"]=param.first; - parameter["type"]=param.second->type; - parameter["title"]=param.second->title; - parameter["description"]=param.second->description; - parameter["value"]=param.second->value; - parameter["min"]=param.second->min; - parameter["max"]=param.second->max; - parameter["step"]=param.second->step; - node["parameters"].append(parameter); - } - } - if (_node->attributes.size()){ - node["attributes"]=Json::arrayValue; - for (auto& attr: _node->attributes) { - Json::Value attribute; - attribute["name"]=attr.first; - attribute["title"]=attr.second->title; - attribute["description"]=attr.second->description; - if (attr.second->vals.size()){ //document attribute enumeration - attribute["value"]=attr.second->value; - attribute["type"]="enum"; - attribute["options"]=Json::arrayValue; - for (auto val: attr.second->vals){ - attribute["options"].append(val); - } - } - else { - attribute["type"]=attr.second->type; - if (attr.second->type=="array"){ - attribute["value"]=Json::arrayValue; - } - else attribute["value"]=attr.second->value; - } - node["attributes"].append(attribute); - } - } -*/ - return node; -} void Node_factory::list_node(Rotor::Node* type,xmlIO XML,int i){ XML.addTag("node"); - XML.addAttribute("node","output_type",type->output_type,i); + XML.addAttribute("node","output_type",type->output_type(),i); XML.addAttribute("node","node_type",type->node_type,i); XML.addAttribute("node","title",type->title,i); XML.addAttribute("node","description",type->description,i); |
