Пример #1
0
        public static void InitNodePinTypes(CodeGenerateSystem.Base.ConstructionParams smParam)
        {
            var splits    = smParam.ConstructParam.Split(',');
            var valueType = splits[0];

            CollectLinkPinInfo(smParam, "OutLink", LinkPinControl.GetLinkTypeFromTypeString(valueType), enBezierType.Right, enLinkOpType.Start, true);
        }
Пример #2
0
        public static void InitNodePinTypes(CodeGenerateSystem.Base.ConstructionParams smParam)
        {
            CollectLinkPinInfo(smParam, "mAlbedo", LinkPinControl.GetLinkTypeFromTypeString("float3"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mNormal", LinkPinControl.GetLinkTypeFromTypeString("float3"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mMetallic", LinkPinControl.GetLinkTypeFromTypeString("float"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mRough", LinkPinControl.GetLinkTypeFromTypeString("float"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mAbsSpecular", LinkPinControl.GetLinkTypeFromTypeString("float"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mTransmit", LinkPinControl.GetLinkTypeFromTypeString("float"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mEmissive", LinkPinControl.GetLinkTypeFromTypeString("float3"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mFuzz", LinkPinControl.GetLinkTypeFromTypeString("float"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mIridescence", LinkPinControl.GetLinkTypeFromTypeString("float"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mDistortion", LinkPinControl.GetLinkTypeFromTypeString("float"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mAlpha", LinkPinControl.GetLinkTypeFromTypeString("float"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mAlphaTest", LinkPinControl.GetLinkTypeFromTypeString("float"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mVertexOffset", LinkPinControl.GetLinkTypeFromTypeString("float3"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mSubAlbedo", LinkPinControl.GetLinkTypeFromTypeString("float3"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mAO", LinkPinControl.GetLinkTypeFromTypeString("float"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mMask", LinkPinControl.GetLinkTypeFromTypeString("float"), enBezierType.Left, enLinkOpType.End, false);

            CollectLinkPinInfo(smParam, "mShadowColor", LinkPinControl.GetLinkTypeFromTypeString("float3"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mDeepShadow", LinkPinControl.GetLinkTypeFromTypeString("float"), enBezierType.Left, enLinkOpType.End, false);
            CollectLinkPinInfo(smParam, "mMoodColor", LinkPinControl.GetLinkTypeFromTypeString("float3"), enBezierType.Left, enLinkOpType.End, false);
        }
Пример #3
0
        public static void InitNodePinTypes(CodeGenerateSystem.Base.ConstructionParams smParam)
        {
            var splits = smParam.ConstructParam.Split('|');

            var include = splits[0];

            if (include.Contains(":"))
            {
                include = EngineNS.CEngine.Instance.FileManager._GetRelativePathFromAbsPath(include, EngineNS.CEngine.Instance.FileManager.Bin);
            }
            include = include.Replace("\\", "/");
            if (include.Contains("bin/"))
            {
                var nIdx = include.IndexOf("bin/");
                include = include.Substring(nIdx + 4);
            }

            System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
            xmlDoc.LoadXml(splits[1]);

            var tempElements = xmlDoc.GetElementsByTagName("Param");

            if (tempElements.Count > 0)
            {
                var cpInfos = new List <CodeGenerateSystem.Base.CustomPropertyInfo>();

                var paramInElm = tempElements[0];
                foreach (System.Xml.XmlElement node in paramInElm.ChildNodes)
                {
                    var strType = node.GetAttribute("Type");
                    var nameStr = node.GetAttribute("Name");
                    var strAttr = node.GetAttribute("Attribute");

                    if (string.IsNullOrEmpty(strAttr))
                    {
                        var linkType = LinkPinControl.GetLinkTypeFromTypeString(strType);
                        switch (linkType)
                        {
                        case enLinkType.Int32:
                        case enLinkType.Int64:
                        case enLinkType.Single:
                        case enLinkType.Double:
                        case enLinkType.Byte:
                        case enLinkType.SByte:
                        case enLinkType.Int16:
                        case enLinkType.UInt16:
                        case enLinkType.UInt32:
                        case enLinkType.UInt64:
                        case enLinkType.Float1:
                            linkType = enLinkType.NumbericalValue | enLinkType.Float1 | enLinkType.Float2 | enLinkType.Float3 | enLinkType.Float4;
                            break;

                        case enLinkType.Float2:
                            linkType = enLinkType.Float2 | enLinkType.Float3 | enLinkType.Float4;
                            break;

                        case enLinkType.Float3:
                            linkType = enLinkType.Float3 | enLinkType.Float4;
                            break;
                        }
                        CollectLinkPinInfo(smParam, strType + "_" + nameStr, linkType, enBezierType.Left, enLinkOpType.End, false);
                    }
                    else if (strAttr == "out")
                    {
                        CollectLinkPinInfo(smParam, strType + "_" + nameStr, LinkPinControl.GetLinkTypeFromTypeString(strType), enBezierType.Right, enLinkOpType.Start, true);
                    }
                    else if (strAttr == "inout")
                    {
                        var linkType = LinkPinControl.GetLinkTypeFromTypeString(strType);
                        switch (linkType)
                        {
                        case enLinkType.Int32:
                        case enLinkType.Int64:
                        case enLinkType.Single:
                        case enLinkType.Double:
                        case enLinkType.Byte:
                        case enLinkType.SByte:
                        case enLinkType.Int16:
                        case enLinkType.UInt16:
                        case enLinkType.UInt32:
                        case enLinkType.UInt64:
                        case enLinkType.Float1:
                            linkType = enLinkType.Float1 | enLinkType.Float2 | enLinkType.Float3 | enLinkType.Float4;
                            break;

                        case enLinkType.Float2:
                            linkType = enLinkType.Float2 | enLinkType.Float3 | enLinkType.Float4;
                            break;

                        case enLinkType.Float3:
                            linkType = enLinkType.Float3 | enLinkType.Float4;
                            break;
                        }
                        CollectLinkPinInfo(smParam, strType + "_" + nameStr + "_in", linkType, enBezierType.Left, enLinkOpType.End, false);
                        CollectLinkPinInfo(smParam, strType + "_" + nameStr + "_out", linkType, enBezierType.Right, enLinkOpType.Start, true);
                    }
                    else if (strAttr == "return")
                    {
                        CollectLinkPinInfo(smParam, strType + "_" + nameStr, LinkPinControl.GetLinkTypeFromTypeString(strType), enBezierType.Right, enLinkOpType.Start, true);
                    }
                }
            }
        }