XII Release 0.1.0
Loading...
Searching...
No Matches
xiiDocumentNodeManager Class Referenceabstract
Inheritance diagram for xiiDocumentNodeManager:
[legend]

Classes

struct  NodeInternal

Public Types

enum class  CanConnectResult {
  ConnectNever , Connect1to1 , Connect1toN , ConnectNto1 ,
  ConnectNtoN
}

Public Member Functions

virtual void GetNodeCreationTemplates (xiiDynamicArray< xiiNodeCreationTemplate > &out_templates) const
virtual const xiiRTTI * GetConnectionType () const
virtual const xiiDocumentObject * GetPinPropertyObject (const xiiPin &pin) const
xiiVec2 GetNodePos (const xiiDocumentObject *pObject) const
const xiiConnection & GetConnection (const xiiDocumentObject *pObject) const
const xiiConnection * GetConnectionIfExists (const xiiDocumentObject *pObject) const
const xiiPin * GetInputPinByName (const xiiDocumentObject *pObject, xiiStringView sName) const
const xiiPin * GetOutputPinByName (const xiiDocumentObject *pObject, xiiStringView sName) const
xiiArrayPtr< const xiiUniquePtr< const xiiPin > > GetInputPins (const xiiDocumentObject *pObject) const
xiiArrayPtr< const xiiUniquePtr< const xiiPin > > GetOutputPins (const xiiDocumentObject *pObject) const
bool IsNode (const xiiDocumentObject *pObject) const
bool IsConnection (const xiiDocumentObject *pObject) const
bool IsDynamicPinProperty (const xiiDocumentObject *pObject, const xiiAbstractProperty *pProp) const
xiiArrayPtr< const xiiConnection *const > GetConnections (const xiiPin &pin) const
bool HasConnections (const xiiPin &pin) const
bool IsConnected (const xiiPin &source, const xiiPin &target) const
xiiStatus CanConnect (const xiiRTTI *pObjectType, const xiiPin &source, const xiiPin &target, CanConnectResult &ref_result) const
xiiStatus CanDisconnect (const xiiConnection *pConnection) const
xiiStatus CanDisconnect (const xiiDocumentObject *pObject) const
xiiStatus CanMoveNode (const xiiDocumentObject *pObject, const xiiVec2 &vPos) const
void Connect (const xiiDocumentObject *pObject, const xiiPin &source, const xiiPin &target)
void Disconnect (const xiiDocumentObject *pObject)
void MoveNode (const xiiDocumentObject *pObject, const xiiVec2 &vPos)
virtual bool TryRecreatePins (const xiiDocumentObject *pObject)
 Rebuild a derived schema after callers have disconnected its pins.
void AttachMetaDataBeforeSaving (xiiAbstractObjectGraph &ref_graph) const
void RestoreMetaDataAfterLoading (const xiiAbstractObjectGraph &graph, bool bUndoable)
void GetMetaDataHash (const xiiDocumentObject *pObject, xiiUInt64 &inout_uiHash) const
bool CopySelectedObjects (xiiAbstractObjectGraph &out_objectGraph) const
bool PasteObjects (const xiiArrayPtr< xiiDocument::PasteInfo > &info, const xiiAbstractObjectGraph &objectGraph, const xiiVec2 &vPickedPosition, bool bAllowPickedPosition)
Public Member Functions inherited from xiiDocumentObjectManager
 xiiDocumentObjectManager (const xiiRTTI *pRootType=xiiDocumentRoot::GetStaticRTTI())
void SetDocument (xiiDocument *pDocument)
xiiDocumentObject * CreateObject (const xiiRTTI *pRtti, xiiUuid guid=xiiUuid())
void DestroyObject (xiiDocumentObject *pObject)
virtual void DestroyAllObjects ()
virtual void GetCreateableTypes (xiiHybridArray< const xiiRTTI *, 32 > &ref_types) const
void PatchEmbeddedClassObjects (const xiiDocumentObject *pObject) const
const xiiDocumentObject * GetRootObject () const
xiiDocumentObject * GetRootObject ()
const xiiDocumentObject * GetObject (const xiiUuid &guid) const
xiiDocumentObject * GetObject (const xiiUuid &guid)
const xiiDocument * GetDocument () const
xiiDocument * GetDocument ()
xiiStatus SetValue (xiiDocumentObject *pObject, xiiStringView sProperty, const xiiVariant &newValue, xiiVariant index=xiiVariant())
xiiStatus InsertValue (xiiDocumentObject *pObject, xiiStringView sProperty, const xiiVariant &newValue, xiiVariant index=xiiVariant())
xiiStatus RemoveValue (xiiDocumentObject *pObject, xiiStringView sProperty, xiiVariant index=xiiVariant())
xiiStatus MoveValue (xiiDocumentObject *pObject, xiiStringView sProperty, const xiiVariant &oldIndex, const xiiVariant &newIndex)
void AddObject (xiiDocumentObject *pObject, xiiDocumentObject *pParent, xiiStringView sParentProperty, xiiVariant index)
void RemoveObject (xiiDocumentObject *pObject)
void MoveObject (xiiDocumentObject *pObject, xiiDocumentObject *pNewParent, xiiStringView sParentProperty, xiiVariant index)
xiiStatus CanAdd (const xiiRTTI *pRtti, const xiiDocumentObject *pParent, xiiStringView sParentProperty, const xiiVariant &index) const
xiiStatus CanRemove (const xiiDocumentObject *pObject) const
xiiStatus CanMove (const xiiDocumentObject *pObject, const xiiDocumentObject *pNewParent, xiiStringView sParentProperty, const xiiVariant &index) const
xiiStatus CanSelect (const xiiDocumentObject *pObject) const
bool IsUnderRootProperty (xiiStringView sRootProperty, const xiiDocumentObject *pObject) const
bool IsUnderRootProperty (xiiStringView sRootProperty, const xiiDocumentObject *pParent, xiiStringView sParentProperty) const
bool IsTemporary (const xiiDocumentObject *pObject) const
bool IsTemporary (const xiiDocumentObject *pParent, xiiStringView sParentProperty) const
xiiSharedPtr< xiiDocumentObjectManager::Storage > SwapStorage (xiiSharedPtr< xiiDocumentObjectManager::Storage > pNewStorage)
xiiSharedPtr< xiiDocumentObjectManager::Storage > GetStorage ()

Public Attributes

xiiEvent< const xiiDocumentNodeManagerEvent & > m_NodeEvents
Public Attributes inherited from xiiDocumentObjectManager
xiiCopyOnBroadcastEvent< const xiiDocumentObjectStructureEvent & > m_StructureEvents
xiiCopyOnBroadcastEvent< const xiiDocumentObjectPropertyEvent & > m_PropertyEvents
xiiEvent< const xiiDocumentObjectEvent & > m_ObjectEvents

Protected Member Functions

bool CanReachNode (const xiiDocumentObject *pSource, const xiiDocumentObject *pTarget, xiiSet< const xiiDocumentObject * > &Visited) const
 Tests whether pTarget can be reached from pSource by following the pin connections.
bool WouldConnectionCreateCircle (const xiiPin &source, const xiiPin &target) const
 Returns true if adding a connection between the two pins would create a circular graph.
xiiResult ResolveConnection (const xiiUuid &sourceObject, const xiiUuid &targetObject, xiiStringView sourcePin, xiiStringView targetPin, const xiiPin *&out_pSourcePin, const xiiPin *&out_pTargetPin) const
virtual void GetDynamicPinNames (const xiiDocumentObject *pObject, xiiStringView sPropertyName, xiiStringView sPinName, xiiDynamicArray< xiiString > &out_Names) const

Private Member Functions

virtual bool InternalCanConnectToSelf (const xiiPin &, const xiiPin &) const

Member Enumeration Documentation

◆ CanConnectResult

Enumerator
ConnectNever 

Pins can't be connected.

Connect1to1 

Output pin can have 1 outgoing connection, Input pin can have 1 incoming connection.

Connect1toN 

Output pin can have 1 outgoing connection, Input pin can have N incoming connections.

ConnectNto1 

Output pin can have N outgoing connections, Input pin can have 1 incoming connection.

ConnectNtoN 

Output pin can have N outgoing connections, Input pin can have N incoming connections.

Member Function Documentation

◆ GetNodeCreationTemplates()

void xiiDocumentNodeManager::GetNodeCreationTemplates ( xiiDynamicArray< xiiNodeCreationTemplate > & out_templates) const
virtual

For node documents this function is called instead of GetCreateableTypes to get a list for the node creation menu.

See also
xiiNodeCreationTemplate

Reimplemented in xiiAnimationGraphNodeManager, xiiRenderPipelineNodeManager, xiiVisualScriptNodeManager, and xiiVisualShaderNodeManager.

◆ GetPinPropertyObject()

virtual const xiiDocumentObject * xiiDocumentNodeManager::GetPinPropertyObject ( const xiiPin & pin) const
inlinevirtual

Optional persistent document object inspected when this pin is selected. It must belong to this document and follow its normal commands, serialization and lifetime. Return null for graphs whose pins have no authored properties. No Qt or rendering dependency.

Reimplemented in xiiRenderPipelineNodeManager.

◆ InternalCanConnectToSelf()

virtual bool xiiDocumentNodeManager::InternalCanConnectToSelf ( const xiiPin & ,
const xiiPin &  ) const
inlineprivatevirtual

Consumers may explicitly authorize self feedback (for example, previous-frame resource pins). Ordinary document graph nodes retain the existing no-self-connection policy.

Reimplemented in xiiRenderPipelineNodeManager.


The documentation for this class was generated from the following files:
  • /home/runner/work/XII/XII/Source/Tools/Libs/ToolsFoundation/NodeObject/DocumentNodeManager.h
  • /home/runner/work/XII/XII/Source/Tools/Libs/ToolsFoundation/NodeObject/Implementation/DocumentNodeManager.cpp