LineSweeperForPortLocations(IEnumerable<Polyline> obstacles, Point direction, Point coneRsDir, Point coneLsDir,
                             VisibilityGraph visibilityGraph, IEnumerable<Point> portLocations)
     : base(obstacles, direction) {
     this.visibilityGraph = visibilityGraph;
     ConeRightSideDirection = coneRsDir;
     ConeLeftSideDirection = coneLsDir;
     coneSideComparer = new ConeSideComparer(this);
     leftConeSides = new RbTree<ConeSide>(coneSideComparer);
     rightConeSides = new RbTree<ConeSide>(coneSideComparer);
     PortLocations = portLocations;
 }
 LineSweeper(IEnumerable<Polyline> obstacles, Point direction, Point coneRsDir, Point coneLsDir,
             VisibilityGraph visibilityGraph, Set<Point> ports, Polyline borderPolyline)
     : base(obstacles, direction) {
     this.visibilityGraph = visibilityGraph;
     ConeRightSideDirection = coneRsDir;
     ConeLeftSideDirection = coneLsDir;
     coneSideComparer = new ConeSideComparer(this);
     leftConeSides = new RbTree<ConeSide>(coneSideComparer);
     rightConeSides = new RbTree<ConeSide>(coneSideComparer);
     Ports = ports;
     BorderPolyline = borderPolyline;
     PortEdgesCreator = (a, b) => new TollFreeVisibilityEdge(a, b);
 }