protected override JobHandle OnUpdate(JobHandle deps) { EntityManager.GetAllUniqueSharedComponentDatas(_renderers); for (var i = 0; i < _renderers.Count; i++) { var renderer = _renderers[i]; if (renderer.WorkMesh == null) { continue; } _group.SetFilter(renderer); // Reset the triangle counter. renderer.Counter.Count = 0; // Create a reconstruction job and add it to the job chain. var job = new ReconstructionJob() { Particles = _group.GetComponentDataArray <Particle>(), Positions = _group.GetComponentDataArray <Position>(), Triangles = _group.GetComponentDataArray <Triangle>(), Vertices = renderer.Vertices, Normals = renderer.Normals, Counter = renderer.Counter }; deps = job.Schedule(_group.CalculateLength(), 16, deps); } _renderers.Clear(); return(deps); }
protected override JobHandle OnUpdate(JobHandle deps) { EntityManager.GetAllUniqueSharedComponentDatas(_renderers); for (var i = 0; i < _renderers.Count; i++) { var renderer = _renderers[i]; if (renderer.WorkMesh == null) { continue; } renderer.Counter.Count = 0; _group.SetFilter(renderer); var job = new ReconstructionJob() { Disintegrators = _group.GetComponentDataArray <Disintegrator>(), Positions = _group.GetComponentDataArray <Position>(), Facets = _group.GetComponentDataArray <Facet>(), Vertices = renderer.Vertices, Normals = renderer.Normals, Counter = renderer.Counter }; deps = job.Schedule(_group.CalculateLength(), 16, deps); } _renderers.Clear(); return(deps); }
private void runReconstruction(object sender, EventArgs e) { // Run Job Convert To TDF: IJob zJob; mPreProcessOnGoing = false; mPhaseRetrievalOnGoing = false; string zOutputPath = Properties.Settings.Default.FormSettings_OutputPath + Path.DirectorySeparatorChar + Path.GetFileNameWithoutExtension(this.mInputTDF.Remove(this.mInputTDF.Length - 4) + "_corr_phrt.tdf") + Path.DirectorySeparatorChar + @"slices" + Path.DirectorySeparatorChar; if (mAngles_ProjTo == 0) { mAngles_ProjTo = TDFReader.GetNumberOfProjections(this.mInputTDF.Remove(this.mInputTDF.Length - 4) + "_corr_phrt.tdf") - 1; } // Create an instance for the reconstruction job: zJob = new ReconstructionJob( // Get combobox selection (in handler) this.mInputTDF.Remove(this.mInputTDF.Length - 4) + "_corr_phrt.tdf", zOutputPath, false, mAirSx, mAirDx, mFlatEnd, mHalfHalf, mHalfHalfLine, mExtFOV, mExtFOVRight, mExtFOVOverlap, mExtFOVNormalize, mExtFOVAverage, mRingRemoval, mAngles, mAngles_ProjFrom, mAngles_ProjTo, mCenter, mReconFunc, mReconParam1, mScale, mOverPaddding, mLogTransform, mCircle, mZeroneMode, mCorrectionOffset, 0, TDFReader.GetNumberOfSlices(this.mInputTDF.Remove(this.mInputTDF.Length - 4) + "_corr_phrt.tdf") - 1, Convert.ToInt32(Properties.Settings.Default.FormSettings_NrOfProcesses), mDecimateFactor, mDownscaleFactor, mPostProcess, mPostProcessPolarFilt, mPostProcessConvertArgs, mPostProcessCropArgs, mDynamicFlatFielding, mRolling, mRollShift ); // Create an instance of JobExecuter with the pre processing job: JobExecuter zExecuter = new JobExecuter(zJob); // Execute the job splitting it with several processes (if specified): zExecuter.Run(); // Start the monitoring of the job: mJobMonitor.Run(zExecuter, "slice"); this.mReconstructionOnGoing = true; // Reset status bar: this.toolStripStatusLabel1.Text = string.Empty; }