public static void LoadNodeObjects(string tFileName, GSDSplineN tNode, bool bIsDefault = false, bool bIsBridge = false){ #if UNITY_WEBPLAYER return; #else string tPath = ""; GSDRootUtil.Dir_GetLibrary_CheckSpecialDirs(); string xPath = GSDRootUtil.Dir_GetLibrary(); if(bIsDefault){ tPath = xPath + "B/W/" + tFileName + ".gsd"; }else{ tPath = xPath + "B/" + tFileName + ".gsd"; } string tData = System.IO.File.ReadAllText(tPath); string[] tSep = new string[1]; tSep[0] = FileSepString; string[] tSplit = tData.Split(tSep,System.StringSplitOptions.RemoveEmptyEntries); Splination.SplinatedMeshMaker SMM = null; Splination.SplinatedMeshMaker.SplinatedMeshLibraryMaker SLM = null; EdgeObjects.EdgeObjectMaker EOM = null; EdgeObjects.EdgeObjectMaker.EdgeObjectLibraryMaker ELM = null; int tSplitCount = tSplit.Length; for(int i=0;i<tSplitCount;i++){ SLM = null; SLM = Splination.SplinatedMeshMaker.SLMFromData(tSplit[i]); if(SLM != null){ SMM = tNode.AddSplinatedObject(); SMM.LoadFromLibraryBulk(ref SLM); SMM.bToggle = false; if(bIsBridge && tNode.bIsBridgeStart && tNode.bIsBridgeMatched && tNode.BridgeCounterpartNode != null){ SMM.StartTime = tNode.tTime; SMM.EndTime = tNode.BridgeCounterpartNode.tTime; SMM.StartPos = tNode.GSDSpline.GetSplineValue(SMM.StartTime); SMM.EndPos = tNode.GSDSpline.GetSplineValue(SMM.EndTime); } continue; } ELM = null; ELM = EdgeObjects.EdgeObjectMaker.ELMFromData(tSplit[i]); if(ELM != null){ EOM = tNode.AddEdgeObject(); EOM.LoadFromLibraryBulk(ref ELM); EOM.bToggle = false; if(!EOM.bSingle && bIsBridge && tNode.bIsBridgeStart && tNode.bIsBridgeMatched && tNode.BridgeCounterpartNode != null){ EOM.StartTime = tNode.tTime; EOM.EndTime = tNode.BridgeCounterpartNode.tTime; EOM.StartPos = tNode.GSDSpline.GetSplineValue(EOM.StartTime); EOM.EndPos = tNode.GSDSpline.GetSplineValue(EOM.EndTime); }else if(EOM.bSingle && bIsBridge && tNode.BridgeCounterpartNode != null && tNode.bIsBridgeStart){ float tDist = (EOM.SingleOnlyBridgePercent * (tNode.BridgeCounterpartNode.tDist - tNode.tDist) + tNode.tDist); EOM.SinglePosition = tNode.GSDSpline.TranslateDistBasedToParam(tDist); EOM.StartPos = tNode.GSDSpline.GetSplineValue(EOM.SinglePosition); EOM.EndPos = tNode.GSDSpline.GetSplineValue(EOM.SinglePosition); } continue; } } tNode.SetupSplinatedMeshes(); tNode.SetupEdgeObjects(); #endif }