3#include <Foundation/Containers/Map.h>
4#include <GuiFoundation/GuiFoundationDLL.h>
5#include <QGraphicsItem>
6#include <QGraphicsScene>
7#include <ToolsFoundation/Factory/RttiMappedObjectFactory.h>
8#include <ToolsFoundation/NodeObject/DocumentNodeManager.h>
21 Node = QGraphicsItem::UserType + 1,
36 static plVec2 GetLastMouseInteractionPos() {
return s_vLastMouseInteraction; }
40 using StorageType = plUInt32;
57 using StorageType = plUInt32;
61 DirectionArrows = PL_BIT(0),
62 DrawDebugging = PL_BIT(1),
69 StorageType DirectionArrows : 1;
70 StorageType DrawDebugging : 1;
78 virtual void mouseMoveEvent(QGraphicsSceneMouseEvent* event)
override;
79 virtual void mousePressEvent(QGraphicsSceneMouseEvent* event)
override;
80 virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent* event)
override;
81 virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent* contextMenuEvent)
override;
82 virtual void keyPressEvent(QKeyEvent* event)
override;
96 void MarkupConnectablePins(
plQtPin* pSourcePin);
97 void ResetConnectablePinMarkup();
98 void OpenSearchMenu(QPoint screenPos);
102 virtual void RemoveSelectedNodesAction();
103 virtual void ConnectPinsAction(
const plPin& sourcePin,
const plPin& targetPin);
105 virtual void DisconnectPinsAction(
plQtPin* pPin);
108 void OnMenuItemTriggered(
const QString& sName,
const QVariant& variant);
109 void OnSelectionChanged();
123 bool m_bIgnoreSelectionChange =
false;
124 plQtPin* m_pStartPin =
nullptr;
129 QString m_sContextMenuSearchText;
136 static plVec2 s_vLastMouseInteraction;
Definition DocumentNodeManager.h:141
Definition DocumentObjectBase.h:11
Definition DynamicArray.h:81
Definition DocumentNodeManager.h:59
Definition Connection.h:10
Definition NodeScene.moc.h:16
A factory that creates the closest matching objects according to the passed type.
Definition RttiMappedObjectFactory.h:13
static constexpr plVec2Template< float > MakeZero()
Definition Vec2.h:49
The plBitflags class allows you to work with type-safe bitflags.
Definition Bitflags.h:82
Definition DocumentNodeManager.h:12
Used by plDocumentObjectManager::m_PropertyEvents.
Definition DocumentObjectManager.h:77
A custom enum implementation that allows to define the underlying storage type to control its memory ...
Definition Enum.h:37
Describes a template that will be used to create new nodes. In most cases this only contains the type...
Definition DocumentNodeManager.h:116
Definition NodeScene.moc.h:68
Definition NodeScene.moc.h:56
Enum
Definition NodeScene.moc.h:60
Definition NodeScene.moc.h:39
Definition SelectionManager.h:10
An plResult with an additional message for the reason of failure.
Definition Status.h:12