#include "NodeBase.hpp" std::shared_ptr InboundNodeModel::dataType(PortType, PortIndex) const { return NODE_TYPE_INBOUND; } std::shared_ptr OutboundNodeModel::dataType(PortType, PortIndex) const { return NODE_TYPE_OUTBOUND; } std::shared_ptr RuleNodeModel::dataType(PortType portType, PortIndex) const { switch (portType) { case PortType::In: return NODE_TYPE_INBOUND; case PortType::Out: return NODE_TYPE_OUTBOUND; default: return {}; } } std::shared_ptr ChainOutboundNodeModel::dataType(PortType, PortIndex) const { return NODE_TYPE_CHAINED_OUTBOUND; } // // ******************************************************************************************* // unsigned int InboundNodeModel::nPorts(PortType portType) const { return portType == PortType::Out ? 1 : 0; } unsigned int OutboundNodeModel::nPorts(PortType portType) const { return portType == PortType::Out ? 0 : 1; } unsigned int RuleNodeModel::nPorts(PortType) const { return 1; } unsigned int ChainOutboundNodeModel::nPorts(PortType) const { return 1; } // // ******************************************************************************************* // std::shared_ptr InboundNodeModel::outData(PortIndex) { return std::make_shared(dataptr); } std::shared_ptr OutboundNodeModel::outData(PortIndex) { return std::make_shared(dataptr); } std::shared_ptr RuleNodeModel::outData(PortIndex) { return std::make_shared(dataptr); } std::shared_ptr ChainOutboundNodeModel::outData(PortIndex) { return std::make_shared(dataptr); } // // ******************************************************************************************* // // Forwards all data to std::vector-based override function. void InboundNodeModel::setInData(std::shared_ptr nodeData, PortIndex port) { setInData(std::vector{ nodeData }, port); } void OutboundNodeModel::setInData(std::shared_ptr nodeData, PortIndex port) { setInData(std::vector{ nodeData }, port); } void RuleNodeModel::setInData(std::shared_ptr nodeData, PortIndex port) { setInData(std::vector{ nodeData }, port); } void ChainOutboundNodeModel::setInData(std::shared_ptr nodeData, PortIndex port) { setInData(std::vector{ nodeData }, port); } // // ******************************************************************************************* // QtNodes::NodeDataModel::ConnectionPolicy InboundNodeModel::portInConnectionPolicy(PortIndex) const { // No port return NodeDataModel::ConnectionPolicy::One; } QtNodes::NodeDataModel::ConnectionPolicy OutboundNodeModel::portInConnectionPolicy(PortIndex) const { return NodeDataModel::ConnectionPolicy::Many; } QtNodes::NodeDataModel::ConnectionPolicy RuleNodeModel::portInConnectionPolicy(PortIndex) const { return NodeDataModel::ConnectionPolicy::Many; } QtNodes::NodeDataModel::ConnectionPolicy ChainOutboundNodeModel::portInConnectionPolicy(PortIndex) const { return NodeDataModel::ConnectionPolicy::One; } // // ******************************************************************************************* // QtNodes::NodeDataModel::ConnectionPolicy InboundNodeModel::portOutConnectionPolicy(PortIndex) const { return NodeDataModel::ConnectionPolicy::Many; } QtNodes::NodeDataModel::ConnectionPolicy OutboundNodeModel::portOutConnectionPolicy(PortIndex) const { // No port return NodeDataModel::ConnectionPolicy::One; } QtNodes::NodeDataModel::ConnectionPolicy RuleNodeModel::portOutConnectionPolicy(PortIndex) const { return NodeDataModel::ConnectionPolicy::One; } QtNodes::NodeDataModel::ConnectionPolicy ChainOutboundNodeModel::portOutConnectionPolicy(PortIndex) const { return NodeDataModel::ConnectionPolicy::One; }