#ifndef IShaderGraphNode_h__ #define IShaderGraphNode_h__ #include #include "IShaderTypes.h" #include #include "IPropertyHolder.h" #include #include "shaders/IShaderGraphNodePort.h" namespace LifeGraphics { class IShaderGraphNode : public LifeCore::IPropertyHolder { public: int resource_id; ShaderNodeType NodeType; String Name; bool checked; int id; typedef std::vector PortCollection; typedef std::vector::iterator PortCollectionItr; PortCollection Inputs; PortCollection Outputs; IShaderGraphNode(); IShaderGraphNodePort* GetInputPortByName(const String& name); IShaderGraphNodePort* GetInputPort(size_t id); IShaderGraphNodePort* GetOutputPortByName(const String& name); IShaderGraphNodePort* GetOutputPortByID(size_t id); bool Serialize(LifeCore::IMemoryStream* stm); bool Deserialize(LifeCore::IMemoryStream* stm); size_t GetOutputID(IShaderGraphNodePort* port); }; } #endif // IShaderGraphNode_h__