Plasma Engine  2.0
Loading...
Searching...
No Matches
VisualShaderNodeManager.h
1#pragma once
2
3#include <EditorPluginAssets/VisualShader/VisualShaderTypeRegistry.h>
4#include <ToolsFoundation/NodeObject/DocumentNodeManager.h>
5
7
8class plVisualShaderPin : public plPin
9{
10 PL_ADD_DYNAMIC_REFLECTION(plVisualShaderPin, plPin);
11
12public:
13 plVisualShaderPin(Type type, const plVisualShaderPinDescriptor* pDescriptor, const plDocumentObject* pObject);
14
15 const plRTTI* GetDataType() const;
16 const plString& GetTooltip() const;
17 const plVisualShaderPinDescriptor* GetDescriptor() const { return m_pDescriptor; }
18
19private:
20 const plVisualShaderPinDescriptor* m_pDescriptor;
21};
22
24{
25public:
26 virtual bool InternalIsNode(const plDocumentObject* pObject) const override;
27 virtual void InternalCreatePins(const plDocumentObject* pObject, NodeInternal& ref_node) override;
28 virtual void GetNodeCreationTemplates(plDynamicArray<plNodeCreationTemplate>& out_templates) const override;
29
30 virtual plStatus InternalCanConnect(const plPin& source, const plPin& target, CanConnectResult& out_result) const override;
31
32private:
34 const plRTTI* pRtti, const plDocumentObject* pParent, plStringView sParentProperty, const plVariant& index) const override;
35
36 plUInt32 CountNodesOfType(plVisualShaderNodeType::Enum type) const;
37};
Definition DocumentNodeManager.h:141
CanConnectResult
Definition DocumentNodeManager.h:165
Definition DocumentObjectBase.h:11
Definition DynamicArray.h:81
Definition DocumentNodeManager.h:59
This class holds information about reflected types. Each instance represents one type that is known t...
Definition RTTI.h:30
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
plVariant is a class that can store different types of variables, which is useful in situations where...
Definition Variant.h:44
Definition VisualShaderNodeManager.h:24
virtual plStatus InternalCanAdd(const plRTTI *pRtti, const plDocumentObject *pParent, plStringView sParentProperty, const plVariant &index) const override
Definition VisualShaderNodeManager.cpp:110
virtual void GetNodeCreationTemplates(plDynamicArray< plNodeCreationTemplate > &out_templates) const override
For node documents this function is called instead of GetCreateableTypes to get a list for the node c...
Definition VisualShaderNodeManager.cpp:60
Definition VisualShaderNodeManager.h:9
Definition DocumentNodeManager.h:210
An plResult with an additional message for the reason of failure.
Definition Status.h:12
Definition VisualShaderTypeRegistry.h:12