Plasma Engine  2.0
Loading...
Searching...
No Matches
Connection.h
1#pragma once
2
3#include <GuiFoundation/GuiFoundationDLL.h>
4#include <GuiFoundation/NodeEditor/NodeScene.moc.h>
5#include <QGraphicsPathItem>
6
7class plPin;
8
9class PL_GUIFOUNDATION_DLL plQtConnection : public QGraphicsPathItem
10{
11public:
12 explicit plQtConnection(QGraphicsItem* pParent = 0);
14 virtual int type() const override { return plQtNodeScene::Connection; }
15
16 const plDocumentObject* GetObject() const { return m_pObject; }
17 const plConnection* GetConnection() const { return m_pConnection; }
18 void InitConnection(const plDocumentObject* pObject, const plConnection* pConnection);
19
20 void SetPosIn(const QPointF& point);
21 void SetPosOut(const QPointF& point);
22 void SetDirIn(const QPointF& dir);
23 void SetDirOut(const QPointF& dir);
24
25 virtual void UpdateGeometry();
26 virtual QPen DeterminePen() const;
27
28 const QPointF& GetInPos() const { return m_InPoint; }
29 const QPointF& GetOutPos() const { return m_OutPoint; }
30
31 bool m_bAdjacentNodeSelected = false;
32
33 virtual void ExtendContextMenu(QMenu& ref_menu) {}
34
35protected:
36 virtual void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override;
37
38 // Draws connections following the rules of subway maps (angles of 45 degrees only).
39 void DrawSubwayPath(QPainterPath& path, const QPointF& startPoint, const QPointF& endPoint);
40
41 const plDocumentObject* m_pObject = nullptr;
42 const plConnection* m_pConnection = nullptr;
43
44 QPointF m_InPoint;
45 QPointF m_OutPoint;
46 QPointF m_InDir;
47 QPointF m_OutDir;
48};
Definition DocumentNodeManager.h:37
Definition DocumentObjectBase.h:11
Definition DocumentNodeManager.h:59
Definition Connection.h:10