17 auto inputs =
mNode->getImportNodes();
18 auto input_num = inputs.size();
21 for (
int i = 0; i < inputs.size(); i++)
23 mNodeInport[i] = std::make_shared<WtImportNode>(inputs[i]);
32 for (
int i = 0; i < fOutputs.size(); i++)
34 mFieldExport[i] = std::make_shared<WtFieldData>(fOutputs[i]);
41 for (
int i = 0; i < fInputs.size(); i++)
43 mFieldInport[i] = std::make_shared<WtFieldData>(fInputs[i]);;
77 std::string str = inputFields[portIndex -
mNodeInport.size()]->getClassName();
91 std::string str = outputFields[portIndex - 1]->getClassName();
107 return port == 0 ? std::static_pointer_cast<WtNodeData>(
mNodeExport) : std::static_pointer_cast<WtNodeData>(
mFieldExport[port - 1]);
112 return mNode->caption();
117 return mNode->caption();
123 return mNode->description();
128 (void)portType;; (void)portIndex;;
138 return mNode->getImportNodes()[portIndex]->getPortName();
143 return inputFields[portIndex -
mNodeInport.size()]->getObjectName();
148 if (portIndex == 0) {
155 return outputFields[portIndex - 1]->getObjectName();
168 auto nodeTip = [&](
Node* node) -> std::string {
169 return node->getClassInfo()->getClassName();
172 auto fieldTip = [&](
FBase* f) -> std::string {
173 tip +=
"Class: " + f->getClassName() +
"\n";
174 tip +=
"Template: " + f->getTemplateName() +
"\n";
183 return mNode->getImportNodes()[portIndex]->getPortName();
187 return fieldTip(inputFields[portIndex -
mNodeInport.size()]);
192 if (portIndex == 0) {
193 return nodeTip(
mNode.get());
197 return fieldTip(outputFields[portIndex - 1]);
214 auto node_port = std::dynamic_pointer_cast<WtExportNode>(data);
216 if (node_port !=
nullptr)
218 auto nd = node_port->getNode();
223 nd->disconnect(
mNodeInport[portIndex]->getNodePort());
231 nd->connect(
mNodeInport[portIndex]->getNodePort());
237 auto fieldData = std::dynamic_pointer_cast<WtFieldData>(data);
239 if (fieldData !=
nullptr)
241 auto field = fieldData->getField();
267 auto nodeExp = std::dynamic_pointer_cast<WtExportNode>(nodeData);
269 if (nodeExp ==
nullptr)
274 return nodeInp->getNodePort()->isKindOf(nodeExp->getNode().get());;
276 catch (std::bad_cast)
285 auto fieldExp = std::dynamic_pointer_cast<WtFieldData>(nodeData);
286 if (fieldExp ==
nullptr)
291 if (fieldInp->getField()->getClassName() == fieldExp->getField()->getClassName())
293 std::string className = fieldInp->getField()->getClassName();
299 if (instIn !=
nullptr && instOut !=
nullptr)
305 return fieldInp->getField()->getTemplateName() == fieldExp->getField()->getTemplateName();
312 catch (std::bad_cast)
328 auto portType =
mNodeInport[portIndex]->getNodePort()->getPortType();
355 return mNode->getOutputFields();
360 return mNode->getInputFields();
virtual bool canBeConnectedBy(InstanceBase *ins)=0
static const std::string className()