private void onReadingComplete(LoadPointsJob job)
 {
     lock (_lock)
     {
         if (job.State != LoadPointsJob.JobState.Cancelled)
         {
             job.Stage = LoadPointsJob.JobStage.Parsing;
             //_parsingThread.Dispatch(job, job.Priority);
         }
     }
 }
                private void onPostLoadingComplete(LoadPointsJob job)
                {
                    lock (_lock)
                    {
                        if (job.State != LoadPointsJob.JobState.Cancelled)
                        {
                            Node node = job.Node;

                            node.IntensityRange = job.IntensityRange;
                            node.Points         = job.AugmentedPoints;
                            node.Edges          = job.Edges;
                        }
                    }

                    OnNodeLoaded?.Invoke(job.Node);
                }
                private void onBatchingComplete(LoadPointsJob job)
                {
                    lock (_lock)
                    {
                        if (job.State != LoadPointsJob.JobState.Cancelled)
                        {
                            Node node = job.Node;

                            node.Points           = job.AugmentedPoints;
                            node.PartitionOffsets = job.PartitionOffsets;

                            dispatchPendingChildren(node);

                            job.Stage = LoadPointsJob.JobStage.PostLoading;
                            //_postLoadingThread.Dispatch(job, job.Priority);
                        }
                    }
                }
 private void onParsingComplete(LoadPointsJob job)
 {
     lock (_lock)
     {
         if (job.State != LoadPointsJob.JobState.Cancelled)
         {
             if (job.PrepareForDynamicBatching())
             {
                 job.Stage = LoadPointsJob.JobStage.Batching;
                 //_batchingThread.Dispatch(job, job.Priority);
             }
             else
             {
                 job.Stage = LoadPointsJob.JobStage.WaitingForParentPoints;
             }
         }
     }
 }
                public override LoadPointsJob Load(Node node, float p)
                {
                    LoadPointsJob job;

                    job = new LoadPointsJob(node, p);

                    job.Stage = LoadPointsJob.JobStage.Reading;
                    job.State = LoadPointsJob.JobState.Loading;

                    //_readingThread.Dispatch(job, job.Priority);
                    job.Execute(null);
                    onReadingComplete(job);
                    job.Execute(null);
                    onParsingComplete(job);
                    job.Execute(null);
                    onBatchingComplete(job);
                    job.Execute(null);
                    onPostLoadingComplete(job);

                    return(job);
                }