public static void DrawVisibilityGraph(this IDebugCanvas canvas, PolyNodeVisibilityGraph visibilityGraph)
        {
            canvas.DrawLineList(
                visibilityGraph.Barriers.SelectMany(barrier => barrier.Points.Select(p => new IntVector3(p))).ToList(),
                BarrierStrokeStyle);

            if (visibilityGraph.Waypoints.Any())
            {
                canvas.DrawLineList(
                    (from sourceIndex in Enumerable.Range(0, visibilityGraph.Waypoints.Length)
                     let sourceWaypoint = new IntVector3(visibilityGraph.Waypoints[sourceIndex])
                                          let offset = visibilityGraph.Offsets[sourceIndex]
                                                       let end = visibilityGraph.Offsets[sourceIndex + 1]
                                                                 from edgeIndex in Enumerable.Range(offset, end - offset)
                                                                 let edge = visibilityGraph.Edges[edgeIndex]
                                                                            let destWaypoint = new IntVector3(visibilityGraph.Waypoints[edge.NextIndex])
                                                                                               select new IntLineSegment3(sourceWaypoint, destWaypoint)).ToList(),
                    VisibilityEdgeStrokeStyle);
                canvas.DrawPoints(
                    visibilityGraph.Waypoints.Select(p => new IntVector3(p)).ToList(),
                    WaypointStrokeStyle);

                foreach (var(i, waypoint) in visibilityGraph.Waypoints.Enumerate())
                {
                    canvas.DrawText("" + i, waypoint);
                }
            }
        }
Exemplo n.º 2
0
 public static void DrawLineList(this IDebugCanvas canvas, IReadOnlyList <IntLineSegment2> segments, StrokeStyle strokeStyle)
 {
     canvas.DrawLineList(segments.Map(ToILS3), strokeStyle);
 }
Exemplo n.º 3
0
 public static void DrawLineList(this IDebugCanvas canvas, IReadOnlyList <DoubleVector2> points, StrokeStyle strokeStyle)
 {
     canvas.DrawLineList(points.Map(ToDV3), strokeStyle);
 }
 public static void DrawLineList(this IDebugCanvas canvas, IReadOnlyList <IntLineSegment3> segments, StrokeStyle strokeStyle)
 {
     canvas.DrawLineList(segments.SelectMany(s => s.Points).Select(p => p.ToDoubleVector3()).ToList(), strokeStyle);
 }
 public static void DrawLineList(this IDebugCanvas canvas, IReadOnlyList <IntVector3> points, StrokeStyle strokeStyle)
 {
     canvas.DrawLineList(ToDoublePoints(points), strokeStyle);
 }