Beispiel #1
0
 public LineSweeperBase(IEnumerable <Polyline> obstacles, Point sweepDirection)
 {
     Obstacles             = obstacles;
     SweepDirection        = sweepDirection;
     DirectionPerp         = sweepDirection.Rotate(-Math.PI / 2);
     EventQueue            = new BinaryHeapWithComparer <SweepEvent>(this);
     ObstacleSideComparer  = new ObstacleSideComparer(this);
     LeftObstacleSideTree  = new RbTree <SegmentBase>(ObstacleSideComparer);
     RightObstacleSideTree = new RbTree <SegmentBase>(ObstacleSideComparer);
 }
Beispiel #2
0
 PointVisibilityCalculator(IEnumerable <Polyline> holes, VisibilityGraph visibilityGraph, Point point,
                           VisibilityKind visibilityKind)
 {
     this.holes = holes;
     //this.graphOfHoleBoundaries = holeBoundariesGraph;
     this.visibilityGraph = visibilityGraph;
     q = point;
     qPolylinePoint      = new PolylinePoint(q);
     QVertex             = this.visibilityGraph.AddVertex(qPolylinePoint);
     this.visibilityKind = visibilityKind;
     heapForSorting      = new BinaryHeapWithComparer <Stem>(new StemStartPointComparer(q));
 }
 PointVisibilityCalculator(IEnumerable<Polyline> holes, VisibilityGraph visibilityGraph, Point point,
                           VisibilityKind visibilityKind) {
     this.holes = holes;
     //this.graphOfHoleBoundaries = holeBoundariesGraph;
     this.visibilityGraph = visibilityGraph;
     q = point;
     qPolylinePoint = new PolylinePoint(q);
     QVertex = this.visibilityGraph.AddVertex(qPolylinePoint);
     this.visibilityKind = visibilityKind;
     heapForSorting = new BinaryHeapWithComparer<Stem>(new StemStartPointComparer(q));
 }
 internal EventQueue()
 {
     eventTree = new BinaryHeapWithComparer <SweepEvent>(this);
 }