You've already forked nodeeditor
mirror of
https://github.com/AxioDL/nodeeditor.git
synced 2026-03-30 11:48:31 -07:00
96 lines
1.6 KiB
C++
96 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include <QtCore/QObject>
|
|
|
|
#include <nodes/NodeData>
|
|
#include <nodes/NodeDataModel>
|
|
|
|
#include <memory>
|
|
|
|
using QtNodes::PortType;
|
|
using QtNodes::PortIndex;
|
|
using QtNodes::NodeData;
|
|
using QtNodes::NodeDataType;
|
|
using QtNodes::NodeDataModel;
|
|
using QtNodes::NodeValidationState;
|
|
|
|
/// The class can potentially incapsulate any user data which
|
|
/// need to be transferred within the Node Editor graph
|
|
class MyNodeData : public NodeData
|
|
{
|
|
public:
|
|
|
|
NodeDataType
|
|
type() const override
|
|
{ return NodeDataType {QLatin1String("MyNodeData"), QLatin1String("My Node Data")}; }
|
|
};
|
|
|
|
//------------------------------------------------------------------------------
|
|
|
|
/// The model dictates the number of inputs and outputs for the Node.
|
|
/// In this example it has no logic.
|
|
class MyDataModel : public NodeDataModel
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
|
|
virtual
|
|
~MyDataModel() {}
|
|
|
|
public:
|
|
|
|
QString
|
|
caption() const override
|
|
{
|
|
return QString("My Data Model");
|
|
}
|
|
|
|
QString
|
|
name() const override
|
|
{
|
|
return QString("MyDataModel");
|
|
}
|
|
|
|
public:
|
|
|
|
QJsonObject
|
|
save() const override
|
|
{
|
|
QJsonObject modelJson;
|
|
|
|
modelJson["name"] = name();
|
|
|
|
return modelJson;
|
|
}
|
|
|
|
public:
|
|
|
|
unsigned int
|
|
nPorts(PortType) const override
|
|
{
|
|
return 3;
|
|
}
|
|
|
|
NodeDataType
|
|
dataType(PortType, PortIndex) const override
|
|
{
|
|
return MyNodeData().type();
|
|
}
|
|
|
|
std::shared_ptr<NodeData>
|
|
outData(PortIndex) override
|
|
{
|
|
return std::make_shared<MyNodeData>();
|
|
}
|
|
|
|
void
|
|
setInData(std::shared_ptr<NodeData>, int) override
|
|
{
|
|
//
|
|
}
|
|
|
|
QWidget *
|
|
embeddedWidget() override { return nullptr; }
|
|
};
|