private void loadTerrainOutputs() { terrainOutputs = new Dictionary <TerrainPipelineLayer, List <TerrainOutput> >(new TerrainPipelineLayerComparator()); foreach (TerrainPlugin terrainPlugin in TerrainPipeline) { if (terrainPlugin != null) { TerrainPipelineLayer pipelineLayer = new TerrainPipelineLayer(); TerrainPluginInfo pluginInfo = new TerrainPluginInfo(terrainPlugin); pipelineLayer.PluginId = pluginInfo.Id; pipelineLayer.LayerCode = TerrainPipelineLayer.ToPipelineLayerCode(terrainPlugin.Out, terrainPlugin.In, terrainPlugin.Not); string filename = Path + OUTPUT_SUBDIRECTORY + pipelineLayer.LayerCode + "_" + pipelineLayer.PluginId + ".tou"; string inputData = FileInterface.ReadString(filename); if (inputData != null) { List <TerrainOutput> terrainOutputsList = (List <TerrainOutput>)ObjectSerializer.DeSerialize(inputData, typeof(List <TerrainOutput>)); if (terrainOutputsList != null) { terrainOutputs.Add(pipelineLayer, terrainOutputsList); } } } } cleanUnusedOutputs(); }
private List <TerrainInput> loadTerrainInputs(TerrainPipelineLayer terrainPipelineLayer, List <TerrainInput> terrainInputs) { string inputData = FileInterface.ReadString(Path + INPUT_SUBDIRECTORY + terrainPipelineLayer.LayerCode + "_" + terrainPipelineLayer.PluginId + ".tin"); if (inputData != null) { try { List <TerrainInput> allTerrainInputs = new List <TerrainInput>(); mergeInnerTerrainInputs(allTerrainInputs, terrainInputs); List <TerrainInputValue> terrainInputValues = (List <TerrainInputValue>)ObjectSerializer.DeSerialize(inputData, typeof(List <TerrainInputValue>)); int i = 0; foreach (TerrainInput terrainInput in allTerrainInputs) { switch (terrainInput.Type) { case InputType.Form: case InputType.Sketch: terrainInputValues[i].FillValue(terrainInput); i++; break; } } } catch (Exception ex) { Console.WriteLine("Saved input data does not match: " + ex.Message); } } return(terrainInputs); }
public TerrainPipelineLayer Clone() { TerrainPipelineLayer terrainPipelineLayer = new TerrainPipelineLayer(); terrainPipelineLayer.LayerCode = LayerCode; terrainPipelineLayer.PluginId = PluginId; return(terrainPipelineLayer); }
private void saveTerrainInputs(TerrainPipelineLayer terrainPipelineLayer, List <TerrainInput> terrainInputs, HashSet <string> inputFilesCreated) { if (terrainPipelineLayer == null || terrainInputs == null) { return; } List <TerrainInput> allTerrainInputs = new List <TerrainInput>(); mergeInnerTerrainInputs(allTerrainInputs, terrainInputs); terrainInputs = allTerrainInputs; List <TerrainInputValue> terrainInputValues = new List <TerrainInputValue>(); foreach (TerrainInput terrainInput in terrainInputs) { TerrainInputValue terrainInputValue = null; switch (terrainInput.Type) { case InputType.Form: terrainInputValue = new TerrainInputValueForm(); break; case InputType.Sketch: terrainInputValue = new TerrainInputValueSketch(); break; } if (terrainInputValue != null) { terrainInputValue.SetValue(terrainInput); terrainInputValues.Add(terrainInputValue); } } if (terrainInputValues.Count > 0) { if (!FileInterface.DoesFolderExists(Path + INPUT_SUBDIRECTORY)) { FileInterface.CreateFolder(Path + INPUT_SUBDIRECTORY); } string inputData = ObjectSerializer.Serialize(terrainInputValues); FileInterface.WriteString(Path + INPUT_SUBDIRECTORY + terrainPipelineLayer.LayerCode + "_" + terrainPipelineLayer.PluginId + ".tin", inputData); inputFilesCreated.Add(Path + INPUT_SUBDIRECTORY + terrainPipelineLayer.LayerCode + "_" + terrainPipelineLayer.PluginId + ".tin"); } }
private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { Console.Out.WriteLine("Working 1"); Dictionary <TerrainPlugin, TerrainPipelineLayer> pluginsToProcess = new Dictionary <TerrainPlugin, TerrainPipelineLayer>(); Dictionary <TerrainPipelineLayer, TerrainPlugin> terrainPluginMap = terrainProject.PipelinePluginMap; Console.Out.WriteLine("Working 1.5"); foreach (TerrainPipelineLayer terrainPipelieLayer in pipelineLayersToProcess) { pluginsToProcess.Add(terrainPluginMap[terrainPipelieLayer], terrainPipelieLayer); } Console.Out.WriteLine("Working 2"); List <TerrainOutput> previousTerrainOutputs = new List <TerrainOutput>(); bool somethingProcessed = false; foreach (TerrainPlugin terrainPlugin in terrainProject.TerrainPipeline) { Console.Out.WriteLine("Working 3"); if (terrainPlugin != null) { Console.Out.WriteLine("Working 4"); if (pluginsToProcess.ContainsKey(terrainPlugin)) { Console.Out.WriteLine("Working 5"); List <TerrainOutput> newTerrainOutputs = terrainPlugin.StartProcess(terrainProject.TerrainInputs[pluginsToProcess[terrainPlugin]], terrainProject.WorkflowData); somethingProcessed = true; previousTerrainOutputs = newTerrainOutputs; Console.Out.WriteLine("Working 6"); try { if (terrainProject.TerrainOutputs.ContainsKey(pluginsToProcess[terrainPlugin])) { terrainProject.TerrainOutputs[pluginsToProcess[terrainPlugin]] = newTerrainOutputs; } else { terrainProject.TerrainOutputs.Add(pluginsToProcess[terrainPlugin], newTerrainOutputs); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } else { TerrainPipelineLayer terrainPipelineLayer = new TerrainPipelineLayer(); terrainPipelineLayer.LayerCode = TerrainPipelineLayer.ToPipelineLayerCode(terrainPlugin.Out, terrainPlugin.In, terrainPlugin.Not); if (terrainProject.TerrainOutputs.ContainsKey(terrainPipelineLayer)) { if (somethingProcessed) { previousTerrainOutputs = new List <TerrainOutput>(); terrainProject.TerrainOutputs[terrainPipelineLayer] = new List <TerrainOutput>(); } else { previousTerrainOutputs = terrainProject.TerrainOutputs[terrainPipelineLayer]; } } } } } Console.Out.WriteLine("Saving"); terrainProject.Save(); Console.Out.WriteLine("Working End"); }
public void AddLayerToProcess(TerrainPipelineLayer terrainPipelineLayer) { pipelineLayersToProcess.Add(terrainPipelineLayer); }