Esempio n. 1
0
void GraphConnection::deserialize(Poco::JSON::Object::Ptr obj)
{
    auto outputId = QString::fromStdString(obj->getValue<std::string>("outputId"));
    auto inputId = QString::fromStdString(obj->getValue<std::string>("inputId"));
    auto outputKey = QString::fromStdString(obj->getValue<std::string>("outputKey"));
    auto inputKey = QString::fromStdString(obj->getValue<std::string>("inputKey"));

    auto draw = dynamic_cast<GraphDraw *>(this->parent());
    assert(draw != nullptr);

    //resolve IO objects by id
    QPointer<GraphObject> inputObj = nullptr;
    QPointer<GraphObject> outputObj = nullptr;
    for (const auto obj : draw->getGraphObjects(false))
    {
        if (obj->getId() == inputId) inputObj = obj;
        if (obj->getId() == outputId) outputObj = obj;
    }

    if (inputObj.isNull()) throw Pothos::Exception("GraphConnection::deserialize()", "cant resolve object with ID: '"+inputId.toStdString()+"'");
    if (outputObj.isNull()) throw Pothos::Exception("GraphConnection::deserialize()", "cant resolve object with ID: '"+outputId.toStdString()+"'");

    this->setupEndpoint(GraphConnectionEndpoint(inputObj, GraphConnectableKey(inputKey, true)));
    this->setupEndpoint(GraphConnectionEndpoint(outputObj, GraphConnectableKey(outputKey, false)));

    assert(this->getInputEndpoint().isValid());
    assert(this->getOutputEndpoint().isValid());

    GraphObject::deserialize(obj);
}
Esempio n. 2
0
GraphConnectableKey GraphObject::isPointingToConnectable(const QPointF &) const
{
    return GraphConnectableKey();
}