#ifndef IShaderGraphNodePort_h__ #define IShaderGraphNodePort_h__ #include "IShaderTypes.h" #include namespace LifeGraphics { class IShaderGraphNode; class IShaderGraphNodePort { public: void MakeLink(IShaderGraphNodePort* input, IShaderGraphNodePort* output); IShaderGraphNodePort* GetLink(size_t id); size_t GetLinkCount(); bool IsLinkExists(IShaderGraphNodePort* target); void BreakLink(); IShaderGraphNodePort(IShaderGraphNode* parent); IShaderGraphNode* Parent; String Name; String Value; IShaderDataType DataType; private: void RemoveLink(IShaderGraphNodePort* target); typedef std::vector LinkCollecton; typedef std::vector::iterator LinkCollectonItr; LinkCollecton links; }; } #endif // IShaderGraphNodePort_h__