Example #1
0
		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
        }