private GenerationJob ReadJob(CsvReader reader, ParameterSetting[] parameters) { while (reader.LoadLine(out int columns)) { if (columns >= parameters.Length + 2) { var localParameters = CloneParameters(parameters); var job = new Job() { ProcessedBy = null, Processed = false, Processing = false, Parameters = localParameters }; reader.Get(out int generation, 0); GenerationJob genJob = new GenerationJob(job, generation); // we don't load the generation reader.Get(out job.Value, 1); for (int i = 0; i < localParameters.Length; i++) { reader.Get(out localParameters[i].Current, i + 2); } return(genJob); } } return(null); }
public GenJobInfo(Chunk chunk) { this.chunk = chunk; GenerationJob job = new GenerationJob { blocks = chunk.blocks, lights = chunk.lights, chunkWorldPos = chunk.GetWorldPos(), }; handle = job.Schedule(); //Assert.IsTrue(!genInfo.handle.IsCompleted); }
private VoxelModelGenerationRequest(GenerationJob generator, bool async) { m_Generator = generator; if (async) { m_Task = TaskFactory.Instance.StartNew(generator); } else { m_Task = null; generator.ExecuteTask(); } m_OutputMesh = null; }
public Mesh GetMeshOutput() { if (m_OutputMesh == null) { if (m_Task != null) { m_Task.AwaitCompletion(); } m_OutputMesh = m_Generator.UploadMesh(); // Release everything except the output m_Task = null; m_Generator = default; } return(m_OutputMesh); }
private GenerationJob ReadJob(CsvReader reader, ParameterSetting[] parameters) { int columns; while ( reader.LoadLine( out columns ) ) { if ( columns >= parameters.Length + 2 ) { var localParameters = CloneParameters( parameters ); var job = new Job() { ProcessedBy = null, Processed = false, Processing = false, Parameters = localParameters }; int generation; reader.Get( out generation, 0 ); GenerationJob genJob = new GenerationJob( job, generation ); // we don't load the generation reader.Get( out job.Value, 1 ); for ( int i = 0; i < localParameters.Length; i++ ) { reader.Get( out localParameters[i].Current, i + 2 ); } return genJob; } } return null; }
private void OutputBest(GenerationJob[] best) { if ( best.Length == 0 ) return; using (var writer = new StreamWriter( this.OutputResultFile.GetFilePath() )) { writer.Write( "Generation,Value" ); //write header foreach ( var parameter in best[0].Job.Parameters ) { foreach ( var name in parameter.Names ) { writer.Write( ',' ); writer.Write( name ); } } writer.WriteLine(); for ( int i = 0; i < best.Length; i++ ) { writer.Write( best[i].Generation ); writer.Write( ',' ); writer.Write( best[i].Job.Value ); for ( int j = 0; j < best[i].Job.Parameters.Length; j++ ) { for ( int k = 0; k < best[i].Job.Parameters[j].Names.Length; k++ ) { writer.Write( ',' ); writer.Write( best[i].Job.Parameters[j].Current ); } } writer.WriteLine(); } } }