ezEngine Release 26.3
Loading...
Searching...
No Matches
ezVisualGraphObjectManager Class Referenceabstract

#include <VisualGraphObjectManager.h>

Inheritance diagram for ezVisualGraphObjectManager:

Classes

struct  NodeInternal
 

Public Types

enum class  CanConnectResult {
  ConnectNever , Connect1to1 , Connect1toN , ConnectNto1 ,
  ConnectNtoN
}
 Specifies how many connections are allowed for a pair of pins. More...
 

Public Member Functions

virtual void GetNodeCreationTemplates (ezDynamicArray< ezVisualGraphNodeDesc > &out_templates) const
 For node documents this function is called instead of GetCreateableTypes to get a list for the node creation menu.
 
virtual const ezRTTIGetConnectionType () const
 
ezVec2 GetNodePos (const ezDocumentObject *pObject) const
 
const ezVisualGraphConnectionGetConnection (const ezDocumentObject *pObject) const
 
const ezVisualGraphConnectionGetConnectionIfExists (const ezDocumentObject *pObject) const
 
const ezVisualGraphPinGetInputPinByName (const ezDocumentObject *pObject, ezStringView sName) const
 
const ezVisualGraphPinGetOutputPinByName (const ezDocumentObject *pObject, ezStringView sName) const
 
ezArrayPtr< const ezUniquePtr< const ezVisualGraphPin > > GetInputPins (const ezDocumentObject *pObject) const
 
ezArrayPtr< const ezUniquePtr< const ezVisualGraphPin > > GetOutputPins (const ezDocumentObject *pObject) const
 
bool IsNode (const ezDocumentObject *pObject) const
 
bool IsConnection (const ezDocumentObject *pObject) const
 
bool IsDynamicPinProperty (const ezDocumentObject *pObject, const ezAbstractProperty *pProp) const
 
ezArrayPtr< const ezVisualGraphConnection *const > GetConnections (const ezVisualGraphPin &pin) const
 
bool HasConnections (const ezVisualGraphPin &pin) const
 
bool IsConnected (const ezVisualGraphPin &source, const ezVisualGraphPin &target) const
 
ezStatus CanConnect (const ezRTTI *pObjectType, const ezVisualGraphPin &source, const ezVisualGraphPin &target, CanConnectResult &ref_result) const
 
ezStatus CanDisconnect (const ezVisualGraphConnection *pConnection) const
 
ezStatus CanDisconnect (const ezDocumentObject *pObject) const
 
ezStatus CanMoveNode (const ezDocumentObject *pObject, const ezVec2 &vPos) const
 
void Connect (const ezDocumentObject *pObject, const ezVisualGraphPin &source, const ezVisualGraphPin &target)
 
void Disconnect (const ezDocumentObject *pObject)
 
void MoveNode (const ezDocumentObject *pObject, const ezVec2 &vPos)
 
void AttachMetaDataBeforeSaving (ezAbstractObjectGraph &ref_graph) const
 
void RestoreMetaDataAfterLoading (const ezAbstractObjectGraph &graph, bool bUndoable)
 
void GetMetaDataHash (const ezDocumentObject *pObject, ezUInt64 &inout_uiHash) const
 
bool CopySelectedObjects (ezAbstractObjectGraph &out_objectGraph) const
 
bool PasteObjects (const ezArrayPtr< ezDocument::PasteInfo > &info, const ezAbstractObjectGraph &objectGraph, const ezVec2 &vPickedPosition, bool bAllowPickedPosition)
 
- Public Member Functions inherited from ezDocumentObjectManager
 ezDocumentObjectManager (const ezRTTI *pRootType=ezDocumentRoot::GetStaticRTTI())
 
void SetDocument (ezDocument *pDocument)
 
ezDocumentObjectCreateObject (const ezRTTI *pRtti, ezUuid guid=ezUuid())
 
void DestroyObject (ezDocumentObject *pObject)
 
virtual void DestroyAllObjects ()
 
virtual void GetCreateableTypes (ezHybridArray< const ezRTTI *, 32 > &ref_types) const
 
void PatchEmbeddedClassObjects (const ezDocumentObject *pObject) const
 
const ezDocumentObjectGetRootObject () const
 
ezDocumentObjectGetRootObject ()
 
const ezDocumentObjectGetObject (const ezUuid &guid) const
 
ezDocumentObjectGetObject (const ezUuid &guid)
 
const ezDocumentGetDocument () const
 
ezDocumentGetDocument ()
 
ezStatus SetValue (ezDocumentObject *pObject, ezStringView sProperty, const ezVariant &newValue, ezVariant index=ezVariant())
 
ezStatus InsertValue (ezDocumentObject *pObject, ezStringView sProperty, const ezVariant &newValue, ezVariant index=ezVariant())
 
ezStatus RemoveValue (ezDocumentObject *pObject, ezStringView sProperty, ezVariant index=ezVariant())
 
ezStatus MoveValue (ezDocumentObject *pObject, ezStringView sProperty, const ezVariant &oldIndex, const ezVariant &newIndex)
 
void AddObject (ezDocumentObject *pObject, ezDocumentObject *pParent, ezStringView sParentProperty, ezVariant index)
 
void RemoveObject (ezDocumentObject *pObject)
 
void MoveObject (ezDocumentObject *pObject, ezDocumentObject *pNewParent, ezStringView sParentProperty, ezVariant index)
 
ezStatus CanAdd (const ezRTTI *pRtti, const ezDocumentObject *pParent, ezStringView sParentProperty, const ezVariant &index) const
 
ezStatus CanRemove (const ezDocumentObject *pObject) const
 
ezStatus CanMove (const ezDocumentObject *pObject, const ezDocumentObject *pNewParent, ezStringView sParentProperty, const ezVariant &index) const
 
ezStatus CanSelect (const ezDocumentObject *pObject) const
 
bool IsUnderRootProperty (ezStringView sRootProperty, const ezDocumentObject *pObject) const
 
bool IsUnderRootProperty (ezStringView sRootProperty, const ezDocumentObject *pParent, ezStringView sParentProperty) const
 
bool IsTemporary (const ezDocumentObject *pObject) const
 
bool IsTemporary (const ezDocumentObject *pParent, ezStringView sParentProperty) const
 
ezSharedPtr< ezDocumentObjectManager::StorageSwapStorage (ezSharedPtr< ezDocumentObjectManager::Storage > pNewStorage)
 
ezSharedPtr< ezDocumentObjectManager::StorageGetStorage ()
 

Public Attributes

ezEvent< const ezVisualGraphObjectManagerEvent & > m_NodeEvents
 
- Public Attributes inherited from ezDocumentObjectManager
ezCopyOnBroadcastEvent< const ezDocumentObjectStructureEvent & > m_StructureEvents
 
ezCopyOnBroadcastEvent< const ezDocumentObjectPropertyEvent & > m_PropertyEvents
 
ezEvent< const ezDocumentObjectEvent & > m_ObjectEvents
 

Protected Member Functions

bool CanReachNode (const ezDocumentObject *pSource, const ezDocumentObject *pTarget, ezSet< const ezDocumentObject * > &Visited) const
 Tests whether pTarget can be reached from pSource by following the pin connections.
 
bool WouldConnectionCreateCircle (const ezVisualGraphPin &source, const ezVisualGraphPin &target) const
 Returns true if adding a connection between the two pins would create a circular graph.
 
ezResult ResolveConnection (const ezUuid &sourceObject, const ezUuid &targetObject, ezStringView sourcePin, ezStringView targetPin, const ezVisualGraphPin *&out_pSourcePin, const ezVisualGraphPin *&out_pTargetPin) const
 
virtual void GetDynamicPinNames (const ezDocumentObject *pObject, ezStringView sPropertyName, ezStringView sPinName, ezDynamicArray< ezString > &out_Names) const
 
virtual bool TryRecreatePins (const ezDocumentObject *pObject)
 

Detailed Description

Document object manager for node-based visual graphs.

This base class manages the document-side representation of visual graphs, including nodes, pins, and connections. It handles node creation, pin management, connection validation, and provides events for graph changes. Derive from this class to implement specific graph types such as visual shaders, state machines, or visual scripts. The visual representation is handled separately by ezQtVisualGraphScene.

Member Enumeration Documentation

◆ CanConnectResult

Specifies how many connections are allowed for a pair of pins.

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 ezVisualGraphObjectManager::GetNodeCreationTemplates ( ezDynamicArray< ezVisualGraphNodeDesc > &  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
ezVisualGraphNodeDesc

Reimplemented in ezVisualShaderNodeManager, and ezVisualScriptNodeManager.


The documentation for this class was generated from the following files: