PeriDyno 1.2.1
Loading...
Searching...
No Matches
WtNodeDataModel.h
Go to the documentation of this file.
1#pragma once
2
3#include "WtNodeData.hpp"
4#include "WtNodeStyle.h"
5
12
13class WtConnection;
14class WtNodePainterDelegate;
15
17{
18public:
20
21 virtual ~WtNodeDataModel() = default;
22
23 virtual std::string caption() const = 0;
24
25 virtual std::string nodeTips() const { return "nodeTips"; }
26
27 virtual std::string portTips(PortType, PortIndex) const { return "portTips"; }
28
30 virtual bool captionVisible() const { return true; }
31
32 virtual bool hotkeyEnabled() const { return true; }
33
35 virtual std::string portCaption(PortType, PortIndex) const { return std::string(); }
36
38 virtual bool portCaptionVisible(PortType, PortIndex) const { return false; }
39
40 virtual bool allowExported() const { return true; }
41
43 virtual std::string name() const = 0;
44
45public:
46 //QJsonObject save() const override;
47
48public:
49 virtual unsigned int nPorts(PortType portType) const = 0;
50
51 virtual NodeDataType dataType(PortType portType, PortIndex portIndex) const = 0;
52
53public:
55 {
58 };
59
64
69
70 WtNodeStyle const& nodeStyle() const;
71
72 void setNodeStyle(WtNodeStyle const& style);
73
74public:
76 virtual void setInData(std::shared_ptr<WtNodeData> nodeData, PortIndex port) = 0;
77
78 virtual bool tryInData(PortIndex portIndex, std::shared_ptr<WtNodeData> nodeData) { return true; }
79
80 virtual std::shared_ptr<WtNodeData> outData(PortIndex port) = 0;
81
82 //virtual QWidget* embeddedWidget() = 0;
83
84 virtual bool resizable() const { return false; }
85
87
88 virtual std::string validationMessage() const { return std::string(""); }
89
90 virtual WtNodePainterDelegate* painterDelegate() const { return nullptr; }
91
92public:
93 virtual void inputConnectionCreated(WtConnection const&) {}
94
95 virtual void inputConnectionDeleted(WtConnection const&) {}
96
97 virtual void outputConnectionCreated(WtConnection const&) {}
98
99 virtual void outputConnectionDeleted(WtConnection const&) {}
100
101 //signal
102 //void dataUpdated(PortIndex index);
103
104 //void dataInvalidated(PortIndex index);
105
106 //void computingStarted();
107
108 //void computingFinished();
109
110 //void embeddedWidgetSizeUpdated();
111
112private:
114};
int PortIndex
PortType
NodeValidationState
virtual ConnectionPolicy portOutConnectionPolicy(PortIndex) const
virtual std::string nodeTips() const
virtual std::string caption() const =0
virtual bool captionVisible() const
It is possible to hide caption in GUI.
virtual ~WtNodeDataModel()=default
void setNodeStyle(WtNodeStyle const &style)
virtual std::string portTips(PortType, PortIndex) const
virtual std::string validationMessage() const
virtual NodeDataType dataType(PortType portType, PortIndex portIndex) const =0
virtual bool hotkeyEnabled() const
WtNodeStyle const & nodeStyle() const
virtual void inputConnectionDeleted(WtConnection const &)
virtual bool tryInData(PortIndex portIndex, std::shared_ptr< WtNodeData > nodeData)
WtNodeStyle _nodeStyle
virtual void outputConnectionCreated(WtConnection const &)
virtual ConnectionPolicy portInConnectionPolicy(PortIndex) const
virtual bool portCaptionVisible(PortType, PortIndex) const
It is possible to hide port caption in GUI.
virtual void setInData(std::shared_ptr< WtNodeData > nodeData, PortIndex port)=0
Triggers the algorithm.
virtual std::string portCaption(PortType, PortIndex) const
Port caption is used in GUI to label individual ports.
virtual unsigned int nPorts(PortType portType) const =0
virtual std::string name() const =0
Name makes this model unique.
virtual WtNodePainterDelegate * painterDelegate() const
virtual void outputConnectionDeleted(WtConnection const &)
virtual bool resizable() const
virtual NodeValidationState validationState() const
virtual void inputConnectionCreated(WtConnection const &)
virtual bool allowExported() const
virtual std::shared_ptr< WtNodeData > outData(PortIndex port)=0