ezEngine Release 26.3
Loading...
Searching...
No Matches
ezVisualShaderNodeManager Class Reference

#include <VisualShaderNodeManager.h>

Inheritance diagram for ezVisualShaderNodeManager:

Public Member Functions

virtual bool InternalIsNode (const ezDocumentObject *pObject) const override
 
virtual void InternalCreatePins (const ezDocumentObject *pObject, NodeInternal &ref_node) override
 
virtual void GetNodeCreationTemplates (ezDynamicArray< ezVisualGraphNodeDesc > &out_templates) const override
 For node documents this function is called instead of GetCreateableTypes to get a list for the node creation menu.
 
virtual ezStatus InternalCanConnect (const ezVisualGraphPin &source, const ezVisualGraphPin &target, CanConnectResult &out_result) const override
 
- Public Member Functions inherited from ezVisualGraphObjectManager
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 ()
 

Private Member Functions

virtual ezStatus InternalCanAdd (const ezRTTI *pRtti, const ezDocumentObject *pParent, ezStringView sParentProperty, const ezVariant &index) const override
 

Additional Inherited Members

- Public Types inherited from ezVisualGraphObjectManager
enum class  CanConnectResult {
  ConnectNever , Connect1to1 , Connect1toN , ConnectNto1 ,
  ConnectNtoN
}
 Specifies how many connections are allowed for a pair of pins. More...
 
- Public Attributes inherited from ezVisualGraphObjectManager
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 inherited from ezVisualGraphObjectManager
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

Object manager for visual shader graphs.

Manages the document representation of visual shader nodes and their connections. Creates pins based on shader node type descriptors and validates connections based on data type compatibility. Enforces constraints such as limiting the number of certain node types in a shader.

Member Function Documentation

◆ GetNodeCreationTemplates()

void ezVisualShaderNodeManager::GetNodeCreationTemplates ( ezDynamicArray< ezVisualGraphNodeDesc > &  out_templates) const
overridevirtual

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

See also
ezVisualGraphNodeDesc

Reimplemented from ezVisualGraphObjectManager.

◆ InternalCanAdd()

ezStatus ezVisualShaderNodeManager::InternalCanAdd ( const ezRTTI pRtti,
const ezDocumentObject pParent,
ezStringView  sParentProperty,
const ezVariant index 
) const
overrideprivatevirtual
Todo:
This is an arbitrary limit and it does not count how many nodes reference the same texture

Reimplemented from ezDocumentObjectManager.

◆ InternalCanConnect()

ezStatus ezVisualShaderNodeManager::InternalCanConnect ( const ezVisualGraphPin source,
const ezVisualGraphPin target,
CanConnectResult out_result 
) const
overridevirtual

Reimplemented from ezVisualGraphObjectManager.

◆ InternalCreatePins()

void ezVisualShaderNodeManager::InternalCreatePins ( const ezDocumentObject pObject,
NodeInternal ref_node 
)
overridevirtual

◆ InternalIsNode()

bool ezVisualShaderNodeManager::InternalIsNode ( const ezDocumentObject pObject) const
overridevirtual

Reimplemented from ezVisualGraphObjectManager.


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