internal static void Sweep(IEnumerable<Polyline> obstacles, Point direction, double coneAngle, VisibilityGraph visibilityGraph, IEnumerable<Point> portLocations) { var cs = new LineSweeperForPortLocations(obstacles, direction, direction.Rotate(-coneAngle/2), direction.Rotate(coneAngle/2), visibilityGraph, portLocations); cs.Calculate(); }
internal static void Sweep(IEnumerable <Polyline> obstacles, Point direction, double coneAngle, VisibilityGraph visibilityGraph, IEnumerable <Point> portLocations) { var cs = new LineSweeperForPortLocations(obstacles, direction, direction.Rotate(-coneAngle / 2), direction.Rotate(coneAngle / 2), visibilityGraph, portLocations); cs.Calculate(); }
void AddDirection(Point direction) { var visibilityGraph = new VisibilityGraph(); LineSweeperForPortLocations.Sweep(obstacles, direction, coneAngle, visibilityGraph, PortLocations); foreach (var edge in visibilityGraph.Edges) { VisibilityGraph.AddEdge(edge.SourcePoint, edge.TargetPoint, ((a, b) => new TollFreeVisibilityEdge(a, b))); } }