Plasma Engine  2.0
Loading...
Searching...
No Matches
plDocumentNodeManager Class Referenceabstract
Inheritance diagram for plDocumentNodeManager:

Classes

struct  NodeInternal
 

Public Types

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

Public Member Functions

virtual void GetNodeCreationTemplates (plDynamicArray< plNodeCreationTemplate > &out_templates) const
 For node documents this function is called instead of GetCreateableTypes to get a list for the node creation menu.
 
virtual const plRTTIGetConnectionType () const
 
plVec2 GetNodePos (const plDocumentObject *pObject) const
 
const plConnectionGetConnection (const plDocumentObject *pObject) const
 
const plConnectionGetConnectionIfExists (const plDocumentObject *pObject) const
 
const plPinGetInputPinByName (const plDocumentObject *pObject, plStringView sName) const
 
const plPinGetOutputPinByName (const plDocumentObject *pObject, plStringView sName) const
 
plArrayPtr< const plUniquePtr< const plPin > > GetInputPins (const plDocumentObject *pObject) const
 
plArrayPtr< const plUniquePtr< const plPin > > GetOutputPins (const plDocumentObject *pObject) const
 
bool IsNode (const plDocumentObject *pObject) const
 
bool IsConnection (const plDocumentObject *pObject) const
 
bool IsDynamicPinProperty (const plDocumentObject *pObject, const plAbstractProperty *pProp) const
 
plArrayPtr< const plConnection *const > GetConnections (const plPin &pin) const
 
bool HasConnections (const plPin &pin) const
 
bool IsConnected (const plPin &source, const plPin &target) const
 
plStatus CanConnect (const plRTTI *pObjectType, const plPin &source, const plPin &target, CanConnectResult &ref_result) const
 
plStatus CanDisconnect (const plConnection *pConnection) const
 
plStatus CanDisconnect (const plDocumentObject *pObject) const
 
plStatus CanMoveNode (const plDocumentObject *pObject, const plVec2 &vPos) const
 
void Connect (const plDocumentObject *pObject, const plPin &source, const plPin &target)
 
void Disconnect (const plDocumentObject *pObject)
 
void MoveNode (const plDocumentObject *pObject, const plVec2 &vPos)
 
void AttachMetaDataBeforeSaving (plAbstractObjectGraph &ref_graph) const
 
void RestoreMetaDataAfterLoading (const plAbstractObjectGraph &graph, bool bUndoable)
 
void GetMetaDataHash (const plDocumentObject *pObject, plUInt64 &inout_uiHash) const
 
bool CopySelectedObjects (plAbstractObjectGraph &out_objectGraph) const
 
bool PasteObjects (const plArrayPtr< plDocument::PasteInfo > &info, const plAbstractObjectGraph &objectGraph, const plVec2 &vPickedPosition, bool bAllowPickedPosition)
 
- Public Member Functions inherited from plDocumentObjectManager
 plDocumentObjectManager (const plRTTI *pRootType=plDocumentRoot::GetStaticRTTI())
 
void SetDocument (plDocument *pDocument)
 
plDocumentObjectCreateObject (const plRTTI *pRtti, plUuid guid=plUuid())
 
void DestroyObject (plDocumentObject *pObject)
 
virtual void DestroyAllObjects ()
 
virtual void GetCreateableTypes (plHybridArray< const plRTTI *, 32 > &ref_types) const
 
void PatchEmbeddedClassObjects (const plDocumentObject *pObject) const
 
const plDocumentObjectGetRootObject () const
 
plDocumentObjectGetRootObject ()
 
const plDocumentObjectGetObject (const plUuid &guid) const
 
plDocumentObjectGetObject (const plUuid &guid)
 
const plDocumentGetDocument () const
 
plDocumentGetDocument ()
 
plStatus SetValue (plDocumentObject *pObject, plStringView sProperty, const plVariant &newValue, plVariant index=plVariant())
 
plStatus InsertValue (plDocumentObject *pObject, plStringView sProperty, const plVariant &newValue, plVariant index=plVariant())
 
plStatus RemoveValue (plDocumentObject *pObject, plStringView sProperty, plVariant index=plVariant())
 
plStatus MoveValue (plDocumentObject *pObject, plStringView sProperty, const plVariant &oldIndex, const plVariant &newIndex)
 
void AddObject (plDocumentObject *pObject, plDocumentObject *pParent, plStringView sParentProperty, plVariant index)
 
void RemoveObject (plDocumentObject *pObject)
 
void MoveObject (plDocumentObject *pObject, plDocumentObject *pNewParent, plStringView sParentProperty, plVariant index)
 
plStatus CanAdd (const plRTTI *pRtti, const plDocumentObject *pParent, plStringView sParentProperty, const plVariant &index) const
 
plStatus CanRemove (const plDocumentObject *pObject) const
 
plStatus CanMove (const plDocumentObject *pObject, const plDocumentObject *pNewParent, plStringView sParentProperty, const plVariant &index) const
 
plStatus CanSelect (const plDocumentObject *pObject) const
 
bool IsUnderRootProperty (plStringView sRootProperty, const plDocumentObject *pObject) const
 
bool IsUnderRootProperty (plStringView sRootProperty, const plDocumentObject *pParent, plStringView sParentProperty) const
 
bool IsTemporary (const plDocumentObject *pObject) const
 
bool IsTemporary (const plDocumentObject *pParent, plStringView sParentProperty) const
 
plSharedPtr< plDocumentObjectManager::StorageSwapStorage (plSharedPtr< plDocumentObjectManager::Storage > pNewStorage)
 
plSharedPtr< plDocumentObjectManager::StorageGetStorage ()
 

Public Attributes

plEvent< const plDocumentNodeManagerEvent & > m_NodeEvents
 
- Public Attributes inherited from plDocumentObjectManager
plCopyOnBroadcastEvent< const plDocumentObjectStructureEvent & > m_StructureEvents
 
plCopyOnBroadcastEvent< const plDocumentObjectPropertyEvent & > m_PropertyEvents
 
plEvent< const plDocumentObjectEvent & > m_ObjectEvents
 

Protected Member Functions

bool CanReachNode (const plDocumentObject *pSource, const plDocumentObject *pTarget, plSet< const plDocumentObject * > &Visited) const
 Tests whether pTarget can be reached from pSource by following the pin connections.
 
bool WouldConnectionCreateCircle (const plPin &source, const plPin &target) const
 Returns true if adding a connection between the two pins would create a circular graph.
 
plResult ResolveConnection (const plUuid &sourceObject, const plUuid &targetObject, plStringView sourcePin, plStringView targetPin, const plPin *&out_pSourcePin, const plPin *&out_pTargetPin) const
 
virtual void GetDynamicPinNames (const plDocumentObject *pObject, plStringView sPropertyName, plStringView sPinName, plDynamicArray< plString > &out_Names) const
 
virtual bool TryRecreatePins (const plDocumentObject *pObject)
 

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 plDocumentNodeManager::GetNodeCreationTemplates ( plDynamicArray< plNodeCreationTemplate > & 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
plNodeCreationTemplate

Reimplemented in plVisualScriptNodeManager, and plVisualShaderNodeManager.


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