Plasma Engine  2.0
Loading...
Searching...
No Matches
NodeCommandAccessor.h
1#pragma once
2#include <ToolsFoundation/Object/ObjectCommandAccessor.h>
3
4class PL_TOOLSFOUNDATION_DLL plNodeCommandAccessor : public plObjectCommandAccessor
5{
6public:
9
10 virtual plStatus SetValue(const plDocumentObject* pObject, const plAbstractProperty* pProp, const plVariant& newValue, plVariant index = plVariant()) override;
11
12 virtual plStatus InsertValue(const plDocumentObject* pObject, const plAbstractProperty* pProp, const plVariant& newValue, plVariant index = plVariant()) override;
13 virtual plStatus RemoveValue(const plDocumentObject* pObject, const plAbstractProperty* pProp, plVariant index = plVariant()) override;
14 virtual plStatus MoveValue(const plDocumentObject* pObject, const plAbstractProperty* pProp, const plVariant& oldIndex, const plVariant& newIndex) override;
15
16 virtual plStatus AddObject(const plDocumentObject* pParent, const plAbstractProperty* pParentProp, const plVariant& index, const plRTTI* pType, plUuid& inout_objectGuid) override;
17 virtual plStatus RemoveObject(const plDocumentObject* pObject) override;
18
19private:
20 bool IsNode(const plDocumentObject* pObject) const;
21 bool IsDynamicPinProperty(const plDocumentObject* pObject, const plAbstractProperty* pProp) const;
22
23 struct ConnectionInfo
24 {
25 const plDocumentObject* m_pSource = nullptr;
26 const plDocumentObject* m_pTarget = nullptr;
27 plString m_sSourcePin;
28 plString m_sTargetPin;
29 };
30
31 plStatus DisconnectAllPins(const plDocumentObject* pObject, plDynamicArray<ConnectionInfo>& out_oldConnections);
32 plStatus TryReconnectAllPins(const plDocumentObject* pObject, const plDynamicArray<ConnectionInfo>& oldConnections);
33};
This is the base interface for all properties in the reflection system. It provides enough informatio...
Definition AbstractProperty.h:150
Stores the undo / redo stacks of transactions done on a document.
Definition CommandHistory.h:52
Definition DocumentObjectBase.h:11
Definition DynamicArray.h:81
Definition NodeCommandAccessor.h:5
Definition ObjectCommandAccessor.h:9
This class holds information about reflected types. Each instance represents one type that is known t...
Definition RTTI.h:30
This data type is the abstraction for 128-bit Uuid (also known as GUID) instances.
Definition Uuid.h:11
plVariant is a class that can store different types of variables, which is useful in situations where...
Definition Variant.h:44
An plResult with an additional message for the reason of failure.
Definition Status.h:12