// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved. #pragma once #include "Engine/Core/Types/Variant.h" #include "Engine/Scripting/ScriptingObject.h" #include "VisjectMeta.h" template class DataContainer; typedef DataContainer BytesContainer; /// /// The channel mask modes. /// API_ENUM() enum class ChannelMask { /// /// The red channel. /// Red = 0, /// /// The green channel. /// Green = 1, /// /// The blue channel. /// Blue = 2, /// /// The alpha channel. /// Alpha = 3, }; /// /// Represents a parameter in the Graph. /// API_CLASS() class FLAXENGINE_API GraphParameter : public PersistentScriptingObject { DECLARE_SCRIPTING_TYPE_WITH_CONSTRUCTOR_IMPL(GraphParameter, PersistentScriptingObject); public: /// /// Parameter type /// API_FIELD(ReadOnly) VariantType Type; /// /// Parameter unique ID /// API_FIELD(ReadOnly) Guid Identifier; /// /// Parameter name /// API_FIELD(ReadOnly) String Name; /// /// Parameter value /// API_FIELD() Variant Value; /// /// True if is exposed outside /// API_FIELD() bool IsPublic = true; /// /// Additional metadata /// VisjectMeta Meta; public: /// /// Gets the typename of the parameter type (excluding in-build types). /// /// The typename of the parameter type. API_PROPERTY() StringAnsiView GetTypeTypeName() const { return StringAnsiView(Type.TypeName); } /// /// Gets the data of the Visject Meta entry assigned to this parameter. /// /// Entry type ID /// The entry data or empty if missing or not loaded. API_FUNCTION() BytesContainer GetMetaData(int32 typeID) const; };