public CodeExpression GetLinkFromParamName(CodeGenerateSystem.Base.GenerateCodeContext_Method context) { if (!mCtrlValue_In.HasLink) { return(null); } return(mCtrlValue_In.GetLinkedObject(0).GCode_CodeDom_GetValue(mCtrlValue_In.GetLinkedPinControl(0), context)); }
public GenerateCodeContext_Method Copy() { GenerateCodeContext_Method ret = new GenerateCodeContext_Method(ClassContext, Method); ret.GenerateNext = GenerateNext; ret.ReturnValueType = ReturnValueType; return(ret); }
public override Type GCode_GetType(LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { if (element == null || element == mCountOutPin) { return(typeof(Int32)); } else if (element == mArrayInPin) { if (mArrayInPin.HasLink) { return(mArrayInPin.GetLinkedObject(0).GCode_GetType(mArrayInPin.GetLinkedPinControl(0), context)); } return(typeof(object)); } else { throw new InvalidOperationException(); } }
async System.Threading.Tasks.Task GenerateCode(CodeTypeDeclaration codeClass, CodeGenerateSystem.Base.GenerateCodeContext_Class classContext) { if (mLinkedNodesContainer == null) { await InitializeLinkedNodesContainer(); } var methodContext = new CodeGenerateSystem.Base.GenerateCodeContext_Method(classContext, null); methodContext.IsDelegateInvokeMethod = true; methodContext.DelegateMethodName = MethodName; var assist = this.HostNodesContainer.HostControl as Macross.NodesControlAssist; Macross.NodesControlAssist.ProcessData processData; if (assist.ProcessDataDic.TryGetValue(mLinkedNodesContainer.GUID, out processData)) { methodContext.MethodGenerateData = new CodeGenerateSystem.Base.MethodGenerateData(); foreach (var item in processData.FunctionVariableCategoryItems) { var pro = item.PropertyShowItem as Macross.VariableCategoryItemPropertys; if (pro == null) { continue; } var paramData = new CodeGenerateSystem.Base.MethodLocalParamData() { ParamType = pro.VariableType.GetActualType(), ParamName = pro.VariableName, }; methodContext.MethodGenerateData.LocalParams.Add(paramData); } } foreach (var ctrl in mLinkedNodesContainer.CtrlNodeList) { if (ctrl is CodeDomNode.MethodCustom) { await ctrl.GCode_CodeDom_GenerateCode(codeClass, null, null, methodContext); } } }
public override string GCode_GetValueName(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { if (element == null || element == mReturnValueHandle) { return("FuncRetValue_" + EngineNS.Editor.Assist.GetValuedGUIDString(Id)); } else { stParamData valData; if (mOutValueDataDictionary.TryGetValue(element, out valData)) { if (valData.mStrAttribute == "out") { return("FuncTempValue_" + EngineNS.Editor.Assist.GetValuedGUIDString(Id) + "_" + valData.mPos); } else { var lOI = valData.mInElement; if (lOI.HasLink) { return(lOI.GetLinkedObject(0, true).GCode_GetValueName(lOI.GetLinkedPinControl(0, true), context)); } else { return("FuncTempValue_" + EngineNS.Editor.Assist.GetValuedGUIDString(Id) + "_" + valData.mPos); } } } } return(base.GCode_GetValueName(element, context)); }
public override string GCode_GetTypeString(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { return("FinalTransitionResult"); }
public override void GCode_GenerateCode(ref string strDefinitionSegment, ref string strSegment, int nLayer, CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { string strTab = GCode_GetTabString(nLayer); string strIdt = ""; // 所有的out和inout需要转成对应的类型传参然后再赋值回来 foreach (var pardata in mInParamDataList) { if (!pardata.mStrType.Contains("half")) { continue; } if (pardata.mStrAttribute == "out") { //strIdt += $"{strTab}{pardata.mStrType} {pardata.mStrName}_{EngineNS.Editor.Assist.GetValuedGUIDString(Id)};\r\n"; } else if (pardata.mStrAttribute == "inout") { strIdt += $"{strTab}{pardata.mStrName}_{EngineNS.Editor.Assist.GetValuedGUIDString(Id)}"; var lOI = pardata.mInElement; if (lOI.HasLink) { lOI.GetLinkedObject(0, true).GCode_GenerateCode(ref strDefinitionSegment, ref strSegment, nLayer, lOI.GetLinkedPinControl(0, true), context); var linkVarName = lOI.GetLinkedObject(0, true).GCode_GetValueName(lOI.GetLinkedPinControl(0, true), context); var linkType = lOI.GetLinkType(0, true); switch (pardata.mStrType) { case "float": case "float1": case "half": case "half1": if (linkType != enLinkType.Float1) { linkVarName += ".x"; } break; case "float2": case "half2": if (linkType != enLinkType.Float2) { linkVarName += ".xy"; } break; case "float3": case "half3": if (linkType != enLinkType.Float3) { linkVarName += ".xyz"; } break; } strIdt += $" = ({pardata.mStrType}){linkVarName};\r\n"; } else { // 写入默认值 if (mTemplateClassInstance != null) { var property = mTemplateClassInstance.GetType().GetProperty(pardata.mStrName); if (property != null) { var propertyValue = property.GetValue(mTemplateClassInstance); var value = Program.GetTypeValueString(pardata.mStrType, propertyValue); strIdt += $" = {value};\r\n"; } } } } } ; strIdt += strTab + mStrFuncName + "("; foreach (var pardata in mInParamDataList) { if (pardata.mStrAttribute == "inout" || pardata.mStrAttribute == "out") { if (pardata.mStrType.Contains("half")) { strIdt += $"{pardata.mStrName}_{EngineNS.Editor.Assist.GetValuedGUIDString(Id)},"; } else { strIdt += GCode_GetValueName(pardata.mOutElement, context) + ","; } } else if (pardata.mStrAttribute == "in" || string.IsNullOrEmpty(pardata.mStrAttribute)) { var lOI = pardata.mInElement; if (lOI.HasLink) { lOI.GetLinkedObject(0, true).GCode_GenerateCode(ref strDefinitionSegment, ref strSegment, nLayer, lOI.GetLinkedPinControl(0, true), context); var linkVarName = lOI.GetLinkedObject(0, true).GCode_GetValueName(lOI.GetLinkedPinControl(0, true), context); var linkType = lOI.GetLinkType(0, true); switch (pardata.mStrType) { case "float": case "float1": case "half": case "half1": if (linkType != enLinkType.Float1) { linkVarName += ".x"; } break; case "float2": case "half2": if (linkType != enLinkType.Float2) { linkVarName += ".xy"; } break; case "float3": case "half3": if (linkType != enLinkType.Float3) { linkVarName += ".xyz"; } break; } strIdt += $"({pardata.mStrType}){linkVarName},"; } else { // 写入默认值 if (mTemplateClassInstance != null) { var property = mTemplateClassInstance.GetType().GetProperty(pardata.mStrName); if (property != null) { var propertyValue = property.GetValue(mTemplateClassInstance); var value = Program.GetTypeValueString(pardata.mStrType, propertyValue); strIdt += $"{value},"; } } } } } // 去掉最后一个"," strIdt = strIdt.Remove(strIdt.Length - 1); strIdt += ");\r\n"; foreach (var pardata in mOutValueDataDictionary.Values) { if (!pardata.mStrType.Contains("half")) { continue; } var tagType = pardata.mStrType.Replace("half", "float"); // 赋值 switch (pardata.mStrAttribute) { case "out": case "inout": { strIdt += $"{strTab}{GCode_GetValueName(pardata.mOutElement, context)} = ({tagType}){pardata.mStrName}_{EngineNS.Editor.Assist.GetValuedGUIDString(Id)};\r\n"; } break; } } if (mReturnValueHandle != null) { var pardata = mOutValueDataDictionary[mReturnValueHandle]; if (pardata.mStrType.Contains("half")) { var finalType = pardata.mStrType.Replace("half", "float"); strIdt = $"{finalType} {GCode_GetValueName(null, context)} = ({finalType}){strIdt}"; } else { strIdt = pardata.mStrType + " " + GCode_GetValueName(null, context) + " = " + strIdt; } } //strIdt = strTab + strIdt; // 函数输出参数放入声明段,重复的不再添加 foreach (var pardata in mOutValueDataDictionary.Values) { if (pardata.mStrAttribute == "out" || pardata.mStrAttribute == "inout") { var finalType = pardata.mStrType.Replace("half", "float"); var strValueIdt = finalType + " " + GCode_GetValueName(pardata.mOutElement, context) + " = " + Program.GetInitialNewString(finalType) + ";\r\n"; if (!strDefinitionSegment.Contains(strValueIdt)) { strDefinitionSegment += " " + strValueIdt; } var tempIdt = $"{strTab}{pardata.mStrType} {pardata.mStrName}_{EngineNS.Editor.Assist.GetValuedGUIDString(Id)};\r\n"; if (!strDefinitionSegment.Contains(tempIdt)) { strDefinitionSegment += " " + tempIdt; } } } // 判断该段代码是否调用过,同样的参数调用过则不再调用该函数 //if (!strSegment.Contains(strIdt)) if (!Program.IsSegmentContainString(strSegment.Length - 1, strSegment, strIdt)) { strSegment += strIdt; } base.GCode_GenerateCode(ref strDefinitionSegment, ref strSegment, nLayer, element, context); }
public override Type GCode_GetType(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { return(typeof(ParticleShapeMeshControl)); }
public override string GCode_GetTypeString(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { return("BehaviorTree_PlayAnimationActionControl"); }
public override string GCode_GetValueName(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { string strValueName = ""; if (element == null || element == ResultHandle) { strValueName = "Value_" + EngineNS.Editor.Assist.GetValuedGUIDString(Id); } return(strValueName); }
public override Type GCode_GetType(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { return(typeof(AnimStateTransitionControl)); }
public override string GCode_GetValueName(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { if (element == TextureLink) { return(GetTextureSampName()); } else if (element == RGBALink) { return(GetTextureName() + "_CUBE"); } else if (element == RGBLink) { return(GetTextureName() + "_CUBE.xyz"); } else if (element == RLink) { return(GetTextureName() + "_CUBE.x"); } else if (element == GLink) { return(GetTextureName() + "_CUBE.y"); } else if (element == BLink) { return(GetTextureName() + "_CUBE.z"); } else if (element == ALink) { return(GetTextureName() + "_CUBE.w"); } return(base.GCode_GetValueName(element, context)); }
public override void GCode_GenerateCode(ref string strDefinitionSegment, ref string strSegment, int nLayer, CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { var strValueIdt = "float4 " + GetTextureName() + "_CUBE = float4(0,0,0,0);\r\n"; if (!strDefinitionSegment.Contains(strValueIdt)) { strDefinitionSegment += " " + strValueIdt; } var strTab = GCode_GetTabString(nLayer); string uvName = "mtl.mLocalPos.xyz"; if (UVLink_3D.HasLink) { UVLink_3D.GetLinkedObject(0, true).GCode_GenerateCode(ref strDefinitionSegment, ref strSegment, nLayer, element, context); uvName = UVLink_3D.GetLinkedObject(0, true).GCode_GetValueName(UVLink_3D.GetLinkedPinControl(0, true), context) + ".xyz"; } var assignStr = strTab + GetTextureName() + "_CUBE = vise_texCUBE(" + GetTextureName() + "," + GetTextureSampName() + "," + uvName + ");\r\n"; // 这里先不做判断,连线中有if的情况下会导致问题 //if (!strSegment.Contains(assignStr)) if (!Program.IsSegmentContainString(strSegment.Length - 1, strSegment, assignStr)) { strSegment += assignStr; } }
public override Type GCode_GetType(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { return(typeof(BehaviorTree_ConditionFuncDecoratorControl)); }
public override string GCode_GetTypeString(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { if (element == TextureLink) { return("sampler2D"); } else if (element == RGBALink) { return("float4"); } else if (element == RGBLink) { return("float3"); } else if (element == RLink) { return("float1"); } else if (element == GLink) { return("float1"); } else if (element == BLink) { return("float1"); } else if (element == ALink) { return("float1"); } return(base.GCode_GetTypeString(element, context)); }
public override string GCode_GetTypeString(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { return("BehaviorTree_ConditionFuncDecoratorControl"); }
public override CodeExpression GCode_CodeDom_GetValue(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context, CodeGenerateSystem.Base.GenerateCodeContext_PreNode preNodeContext = null) { string current = ""; if (preNodeContext?.NeedDereferencePoint == true && ElementType.IsPointer) { current = $"(*current_{EngineNS.Editor.Assist.GetValuedGUIDString(this.Id)})"; } else { current = "current_" + EngineNS.Editor.Assist.GetValuedGUIDString(this.Id); } if (element == mCtrlArrayElement) { return(new CodeSnippetExpression(current)); } else if (element == mCtrlArrayIndex) { return(new CodeSnippetExpression($"index_{EngineNS.Editor.Assist.GetValuedGUIDString(this.Id)}")); } else if (element == mCtrlDicKey) { current += ".Key"; return(new CodeSnippetExpression(current)); } else if (element == mCtrlDicValue) { current += ".Value"; return(new CodeSnippetExpression(current)); } return(base.GCode_CodeDom_GetValue(element, context)); }
public override async System.Threading.Tasks.Task GCode_CodeDom_GenerateCode(CodeTypeDeclaration codeClass, CodeStatementCollection codeStatementCollection, CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { if (element == mCtrlArrayElement || element == mCtrlArrayIndex || element == mCtrlDicKey || element == mCtrlDicValue) { return; } var param = CSParam as ForeachNodeConstructionParams; if (mCtrlArrayIn.HasLink) { var valuedGUID = EngineNS.Editor.Assist.GetValuedGUIDString(this.Id); var array = "param_" + valuedGUID; var current = "current_" + valuedGUID; if (!mCtrlArrayIn.GetLinkedObject(0, true).IsOnlyReturnValue) { await mCtrlArrayIn.GetLinkedObject(0, true).GCode_CodeDom_GenerateCode(codeClass, codeStatementCollection, mCtrlArrayIn.GetLinkedPinControl(0, true), context); } var arrayExpression = mCtrlArrayIn.GetLinkedObject(0, true).GCode_CodeDom_GetValue(mCtrlArrayIn.GetLinkedPinControl(0, true), context); codeStatementCollection.Add(new CodeVariableDeclarationStatement("var", array, arrayExpression)); // 调试的代码 var debugCodes = CodeDomNode.BreakPoint.BeginMacrossDebugCodeStatments(codeStatementCollection); CodeDomNode.BreakPoint.BreakCodeStatement(codeClass, debugCodes, HostNodesContainer.GUID, Id); CodeDomNode.BreakPoint.EndMacrossDebugCodeStatements(codeStatementCollection, debugCodes); var idxStr = $"index_{valuedGUID}"; string value = ""; switch (param.LoopValueType) { case ForeachNodeConstructionParams.enLoopValueType.Dictionary: value = " foreach (var " + current + " in " + array + ")\r\n"; value += " {"; codeStatementCollection.Add(new CodeSnippetStatement(value)); break; case ForeachNodeConstructionParams.enLoopValueType.IntPtr: { var countStr = $"count_{ valuedGUID}"; if (mCountDeclaration == null || !codeStatementCollection.Contains(mCountDeclaration)) { var countType = typeof(Int32); if (mCtrlArrayCount.HasLink) { mCountDeclaration = new CodeVariableDeclarationStatement(countType, countStr); mCountDeclaration.InitExpression = new CodeGenerateSystem.CodeDom.CodeCastExpression(countType, mCtrlArrayCount.GetLinkedObject(0, true).GCode_CodeDom_GetValue(mCtrlArrayCount.GetLinkedPinControl(0, true), context)); codeStatementCollection.Add(mCountDeclaration); } else { mCountDeclaration = new CodeVariableDeclarationStatement(countType, countStr); mCountDeclaration.InitExpression = new CodeGenerateSystem.CodeDom.CodeCastExpression(countType, new CodePrimitiveExpression(CountDefaultValue)); codeStatementCollection.Add(mCountDeclaration); } } value = $" for (int {idxStr} = 0; {idxStr} < {countStr}; {idxStr}++)"; value += " {"; codeStatementCollection.Add(new CodeSnippetStatement(value)); codeStatementCollection.Add(new CodeVariableDeclarationStatement(ElementType, current, new CodeVariableReferenceExpression($"{array}[{idxStr}]"))); } break; case ForeachNodeConstructionParams.enLoopValueType.Array: value = $" for (int {idxStr} = 0; {idxStr} < {array}.Length; {idxStr}++)"; value += " {"; codeStatementCollection.Add(new CodeSnippetStatement(value)); codeStatementCollection.Add(new CodeVariableDeclarationStatement(ElementType, current, new CodeVariableReferenceExpression($"{array}[{idxStr}]"))); break; case ForeachNodeConstructionParams.enLoopValueType.List: value = $" for (int {idxStr} = 0; {idxStr} < {array}.Count; {idxStr}++)"; value += " {"; codeStatementCollection.Add(new CodeSnippetStatement(value)); codeStatementCollection.Add(new CodeVariableDeclarationStatement(ElementType, current, new CodeVariableReferenceExpression($"{array}[{idxStr}]"))); break; } if (mCtrlMethodLink_LoopBody.HasLink) { //if (!mCtrlMethodLink_LoopBody.GetLinkedObject(0, false).IsOnlyReturnValue) await mCtrlMethodLink_LoopBody.GetLinkedObject(0, false).GCode_CodeDom_GenerateCode(codeClass, codeStatementCollection, mCtrlMethodLink_LoopBody.GetLinkedPinControl(0, false), context); } codeStatementCollection.Add(new CodeSnippetStatement(" }")); if (context.GenerateNext) { if (mCtrlMethodLink_Completed.HasLink) { //if (!mCtrlMethodLink_Completed.GetLinkedObject(0, false).IsOnlyReturnValue) await mCtrlMethodLink_Completed.GetLinkedObject(0, false).GCode_CodeDom_GenerateCode(codeClass, codeStatementCollection, mCtrlMethodLink_Completed.GetLinkedPinControl(0, false), context); } } } }
public override string GCode_GetTypeString(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { stParamData valData; if (mOutValueDataDictionary.TryGetValue(element, out valData)) { return(valData.mStrType); } return(base.GCode_GetTypeString(element, context)); }
public override async System.Threading.Tasks.Task GCode_CodeDom_GenerateCode(CodeTypeDeclaration codeClass, CodeStatementCollection codeStatementCollection, CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { var param = CSParam as MethodInvoke_DelegateControlConstructionParams; if (mChildNodes.Count == 0) { // 不包含自定义参数,直接使用函数成员,减少lambda造成的gc var fieldName = "lambda_" + MethodName; var lambdaField = new CodeMemberField(new CodeTypeReference(param.ParamInfo.ParameterType), fieldName); codeClass.Members.Add(lambdaField); var cc = codeClass as CodeGenerateSystem.CodeDom.CodeTypeDeclaration; if (cc == null) { throw new InvalidOperationException("请使用 CodeGenerateSystem.CodeDom.CodeTypeDeclaration 替换 System.CodeDom.CodeTypeDeclaration"); } cc.ConstructStatements.Add(new CodeAssignStatement(new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), fieldName), new CodeVariableReferenceExpression(MethodName))); } await GenerateCode(codeClass, context.ClassContext); }
public override void GCode_GenerateCode(ref string strDefinitionSegment, ref string strSegment, int nLayer, CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { string strTab = GCode_GetTabString(nLayer); if (ValueA == null || ValueA.GetLinkedObject(0, true) == null) { return; } string valueNameA; ValueA.GetLinkedObject(0, true).GCode_GenerateCode(ref strDefinitionSegment, ref strSegment, nLayer, ValueA.GetLinkedPinControl(0, true), context); valueNameA = ValueA.GetLinkedObject(0, true).GCode_GetValueName(ValueA.GetLinkedPinControl(0, true), context); string valueNameB; ValueB.GetLinkedObject(0, true).GCode_GenerateCode(ref strDefinitionSegment, ref strSegment, nLayer, ValueB.GetLinkedPinControl(0, true), context); valueNameB = ValueB.GetLinkedObject(0, true).GCode_GetValueName(ValueB.GetLinkedPinControl(0, true), context); var lOI = this.ValueAgtB.HasLink ? this.ValueAgtB : (ValueAeqB.HasLink ? ValueAeqB : (ValueAltB.HasLink ? ValueAltB : null)); if (lOI == null) { return; } // 判断变量是否已经声明过了,没有声明过则进行声明 string strInitString = ""; string strValueType = lOI.GetLinkedObject(0, true).GCode_GetTypeString(lOI.GetLinkedPinControl(0, true), context); strInitString = Program.GetInitialNewString(strValueType); var strValueIdt = strValueType + " " + GCode_GetValueName(null, context) + " = " + strInitString + ";\r\n"; if (!strDefinitionSegment.Contains(strValueIdt)) { strDefinitionSegment += " " + strValueIdt; } var lo_AgtB = ValueAgtB.GetLinkedObject(0, true); // A>B var lo_AeqB = ValueAeqB.GetLinkedObject(0, true); // A==B var lo_AltB = ValueAltB.GetLinkedObject(0, true); // A<B if (lo_AgtB != null) { lo_AgtB.GCode_GenerateCode(ref strDefinitionSegment, ref strSegment, nLayer + 1, ValueAgtB.GetLinkedPinControl(0, true), context); } if (lo_AeqB != null && lo_AeqB != lo_AgtB) { lo_AeqB.GCode_GenerateCode(ref strDefinitionSegment, ref strSegment, nLayer + 1, ValueAeqB.GetLinkedPinControl(0, true), context); } if (lo_AltB != null && lo_AltB != lo_AgtB && lo_AltB != lo_AeqB) { lo_AltB.GCode_GenerateCode(ref strDefinitionSegment, ref strSegment, nLayer + 1, ValueAltB.GetLinkedPinControl(0, true), context); } // A>B if (ValueAgtB.HasLink) { strSegment += strTab + "if( " + valueNameA + " > " + valueNameB + ")\r\n"; strSegment += strTab + "{\r\n"; //string strIFSegment = ""; //lOIAgtB.GetLinkObject(0, true).GCode_GenerateCode(ref strDefinitionSegment, ref strIFSegment, nLayer + 1, lOIAgtB.GetLinkElement(0, true)); //strSegment += strIFSegment; strSegment += GCode_GetTabString(nLayer + 1) + GCode_GetValueName(null, context) + " = " + lo_AgtB.GCode_GetValueName(ValueAgtB.GetLinkedPinControl(0, true), context) + ";\r\n"; strSegment += strTab + "}\r\n"; } // A==B if (ValueAeqB.HasLink) { //if (ValueAltB.HasLink) //{ // string strIfType; // if (ValueAgtB.HasLink) // strIfType = "else if"; // else // strIfType = "if"; // strSegment += strTab + strIfType + "( " + valueNameA + " == " + valueNameB + ")\r\n"; //} //else // strSegment += strTab + "else\r\n"; strSegment += strTab + "if( " + valueNameA + " == " + valueNameB + ")\r\n"; strSegment += strTab + "{\r\n"; //string strIFSegment = ""; //lOIAeqB.GetLinkObject(0, true).GCode_GenerateCode(ref strDefinitionSegment, ref strIFSegment, nLayer + 1, lOIAeqB.GetLinkElement(0, true)); //strSegment += strIFSegment; strSegment += GCode_GetTabString(nLayer + 1) + GCode_GetValueName(null, context) + " = " + lo_AeqB.GCode_GetValueName(ValueAeqB.GetLinkedPinControl(0, true), context) + ";\r\n"; strSegment += strTab + "}\r\n"; } // A<B if (ValueAltB.HasLink) { //if (ValueAgtB.HasLink || ValueAeqB.HasLink) // strSegment += strTab + "else\r\n"; //else // strSegment += strTab + "if( " + valueNameA + " < " + valueNameB + ")\r\n"; strSegment += strTab + "if( " + valueNameA + " < " + valueNameB + ")\r\n"; strSegment += strTab + "{\r\n"; //string strIFSegment = ""; //lOIAltB.GetLinkObject(0, true).GCode_GenerateCode(ref strDefinitionSegment, ref strIFSegment, nLayer + 1, lOIAltB.GetLinkElement(0, true)); //strSegment += strIFSegment; strSegment += GCode_GetTabString(nLayer + 1) + GCode_GetValueName(null, context) + " = " + lo_AltB.GCode_GetValueName(ValueAltB.GetLinkedPinControl(0, true), context) + ";\r\n"; strSegment += strTab + "}\r\n"; } }
public override Type GCode_GetType(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { return(typeof(LALegIKControl)); }
public override string GCode_GetTypeString(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { var lOI = ValueAgtB.HasLink ? ValueAgtB : (ValueAeqB.HasLink ? ValueAeqB : (ValueAltB.HasLink ? ValueAltB : null)); if (lOI != null) { return(lOI.GetLinkedObject(0, true).GCode_GetTypeString(lOI.GetLinkedPinControl(0, true), context)); } return(base.GCode_GetTypeString(element, context)); }
public override string GCode_GetValueName(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { var data = mMaterialDataDic[element]; return("mtl." + data.mStrName); }
public override System.CodeDom.CodeExpression GCode_CodeDom_GetValue(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context, CodeGenerateSystem.Base.GenerateCodeContext_PreNode preNodeContext = null) { return(new System.CodeDom.CodeSnippetExpression("System.Math.Sin((System.DateTime.Now.Millisecond*0.001)*2*System.Math.PI)")); }
public override string GCode_GetTypeString(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { var data = mMaterialDataDic[element]; return(data.mStrType); }
public override string GCode_GetTypeString(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { return("LALegIKControl"); }
public override string GCode_GetValueName(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { return("mtl.mLocalBinorm.w"); }
public override System.CodeDom.CodeExpression GCode_CodeDom_GetValue(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context, CodeGenerateSystem.Base.GenerateCodeContext_PreNode preNodeContext = null) { return(null); }
public override Type GCode_GetType(CodeGenerateSystem.Base.LinkPinControl element, CodeGenerateSystem.Base.GenerateCodeContext_Method context) { return(typeof(BehaviorTree_PlayAnimationActionControl)); }