コード例 #1
0
ファイル: serializer.cpp プロジェクト: denji/antimony
void SceneSerializer::serializeNode(QDataStream* out, Node* node)
{
    *out << quint32(node->getNodeType());
    *out << node->objectName();

    // Serialize child nodes first.
    serializeNodes(out, node);

    Datum* deferred = NULL;
    auto datums = node->findChildren<Datum*>(QString(),
                                             Qt::FindDirectChildrenOnly);
    *out << quint32(datums.length());
    for (auto d : datums)
    {
        if (dynamic_cast<ScriptDatum*>(d))
        {
            Q_ASSERT(deferred == NULL);
            Q_ASSERT(node->getNodeType() == NodeType::SCRIPT);;
            deferred = d;
        }
        else
        {
            serializeDatum(out, d);
        }
    }

    if (deferred)
    {
        serializeDatum(out, deferred);
    }
}
コード例 #2
0
ファイル: serializer.cpp プロジェクト: Highstaker/antimony
QJsonObject SceneSerializer::run(SerializerMode mode)
{
    QJsonObject out;
    out["type"] = "sb";
    out["protocol"] = PROTOCOL_VERSION;

    out["nodes"] = serializeNodes(node_root);

    if (mode == SERIALIZE_ALL)
        out["connections"] = serializeConnections();
    return out;
}
コード例 #3
0
String MarkupAccumulator::serializeNodes(Node* targetNode, Node* nodeToSkip, EChildrenOnly childrenOnly)
{
    return serializeNodes(targetNode, nodeToSkip, childrenOnly, 0);
}
コード例 #4
0
ファイル: serializer.cpp プロジェクト: denji/antimony
void SceneSerializer::run(QDataStream* out)
{
    *out << QString("sb") << quint32(1) << quint32(0);
    serializeNodes(out, NodeManager::manager());
    serializeConnections(out);
}