/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/Tools/Libs/ToolsFoundation/VisualGraph/VisualGraphCommandAccessor.h
40 строк
2 KB
Jan Krassnigg
Visual graph infrastructure cleanup (#1821)
19 фев 2026, 09:02
Не верифицирован
19 фев 2026, 09:02
7f7f12f
Код
Авторство
О чём код?
#pragma once #include <ToolsFoundation/Object/ObjectCommandAccessor.h> /// Command accessor for visual graph documents. /// /// Extends the base command accessor to handle visual graph-specific operations. /// When node properties change (such as adding or removing dynamic pins), it automatically /// disconnects and reconnects pins as needed to maintain graph consistency. class EZ_TOOLSFOUNDATION_DLL ezVisualGraphCommandAccessor : public ezObjectCommandAccessor { EZ_ADD_DYNAMIC_REFLECTION(ezVisualGraphCommandAccessor, ezObjectCommandAccessor); public: ezVisualGraphCommandAccessor(ezCommandHistory* pHistory); ~ezVisualGraphCommandAccessor(); virtual ezStatus SetValue(const ezDocumentObject* pObject, const ezAbstractProperty* pProp, const ezVariant& newValue, ezVariant index = ezVariant()) override; virtual ezStatus InsertValue(const ezDocumentObject* pObject, const ezAbstractProperty* pProp, const ezVariant& newValue, ezVariant index = ezVariant()) override; virtual ezStatus RemoveValue(const ezDocumentObject* pObject, const ezAbstractProperty* pProp, ezVariant index = ezVariant()) override; virtual ezStatus MoveValue(const ezDocumentObject* pObject, const ezAbstractProperty* pProp, const ezVariant& oldIndex, const ezVariant& newIndex) override; virtual ezStatus AddObject(const ezDocumentObject* pParent, const ezAbstractProperty* pParentProp, const ezVariant& index, const ezRTTI* pType, ezUuid& inout_objectGuid) override; virtual ezStatus RemoveObject(const ezDocumentObject* pObject) override; private: bool IsNode(const ezDocumentObject* pObject) const; bool IsDynamicPinProperty(const ezDocumentObject* pObject, const ezAbstractProperty* pProp) const; struct ConnectionInfo { const ezDocumentObject* m_pSource = nullptr; const ezDocumentObject* m_pTarget = nullptr; ezString m_sSourcePin; ezString m_sTargetPin; }; ezStatus DisconnectAllPins(const ezDocumentObject* pObject, ezDynamicArray<ConnectionInfo>& out_oldConnections); ezStatus TryReconnectAllPins(const ezDocumentObject* pObject, const ezDynamicArray<ConnectionInfo>& oldConnections); };