private void ExecuteSegmentPartitioning() { switch (Partitioner.States.State) { case PartitionState.Loaded: case PartitionState.Working: Partitioner.Execute(); break; case PartitionState.Finished: if (Partitioner.States.Splitter == null) { throw new NullReferenceException("Unexpected null partition splitter"); } BspSegment splitter = Partitioner.States.Splitter; MinisegCreator.Load(splitter, Partitioner.States.CollinearVertices); State = BspState.GeneratingMinisegs; break; } }