Exemple #1
0
        public override string GCode_GetValueName(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context)
        {
            switch (CSParam.ConstructParam)
            {
            case "+":
                return("(" + m_strValueName1 + " + " + m_strValueName2 + ")");

            case "-":
                return("(" + m_strValueName1 + " - " + m_strValueName2 + ")");

            case "×":
                return("(" + m_strValueName1 + " * " + m_strValueName2 + ")");

            case "·":       // 点乘
            case "dot":
                return("dot(" + m_strValueName1 + " ," + m_strValueName2 + ")");

            case "÷":
                return("(" + m_strValueName1 + "/" + m_strValueName2 + ")");

            case "cross":      // 叉乘
            {
                if ((Value1.GetLinkType(0, true) == enLinkType.Float2 && Value2.GetLinkType(0, true) == enLinkType.Float2) ||
                    (Value1.GetLinkType(0, true) == enLinkType.Float3 && Value2.GetLinkType(0, true) == enLinkType.Float3) ||
                    (Value1.GetLinkType(0, true) == enLinkType.Float4 && Value2.GetLinkType(0, true) == enLinkType.Float4))
                {
                    return("cross(" + m_strValueName1 + ", " + m_strValueName2 + ")");
                }

                return("(" + m_strValueName1 + " * " + m_strValueName2 + ")");
            }
            }

            return(base.GCode_GetValueName(element, context));
        }
        protected override void CollectionErrorMsg()
        {
            if (ResultLink.HasLink)
            {
                if (!Value1.HasLink)
                {
                    HasError          = true;
                    ErrorDescription += "未设置左参";
                }
                if (!Value2.HasLink)
                {
                    HasError          = true;
                    ErrorDescription += "未设置右参";
                }

                var leftType  = Value1.GetLinkType(0, true);
                var rightType = Value2.GetLinkType(0, true);
                if (GetAvilableType(leftType, rightType) == CodeGenerateSystem.Base.enLinkType.Unknow)
                {
                    HasError          = true;
                    ErrorDescription += "类型" + leftType + "与类型" + rightType + "不能进行" + CSParam.ConstructParam + "运算";
                }
            }
        }