示例#1
0
        public BspBuilder(BspConfig config, MapData map)
        {
            BspConfig = config;
            CollinearTracker   collinearTracker   = new CollinearTracker(config.VertexWeldingEpsilon);
            JunctionClassifier junctionClassifier = new JunctionClassifier();

            VertexAllocator  = new VertexAllocator(config.VertexWeldingEpsilon);
            SegmentAllocator = new SegmentAllocator(VertexAllocator, collinearTracker);
            ConvexChecker    = new ConvexChecker();
            SplitCalculator  = new SplitCalculator(config, collinearTracker);
            Partitioner      = new Partitioner(config, SegmentAllocator, junctionClassifier);
            MinisegCreator   = new MinisegCreator(VertexAllocator, SegmentAllocator, junctionClassifier);

            List <BspSegment> segments = ProcessMapLines(map);

            junctionClassifier.Add(segments);
            CreateInitialWorkItem(segments);
        }
示例#2
0
 public SplitCalculator(BspConfig bspConfig, CollinearTracker collinearTracker)
 {
     this.bspConfig        = bspConfig;
     this.collinearTracker = collinearTracker;
 }