Exemple #1
0
        internal List <VisibilityEdge> GetAllGraphEdgesWithEndpointInInteriorOf(IEnumerable <Rectangle> rects,
                                                                                double slack = 0.01)
        {
            var rtree = new RTree <Rectangle>();

            foreach (var rect in rects)
            {
                var shrinkedRect = rect.Clone();
                shrinkedRect.ScaleAroundCenter(1 - slack);
                rtree.Add(shrinkedRect, shrinkedRect);
            }

            var edges = (from edge in PathRouter.GetAllEdgesVisibilityEdges()
                         let qrect1 = new Rectangle(edge.SourcePoint, edge.SourcePoint)
                                      let qrect2 = new Rectangle(edge.TargetPoint, edge.TargetPoint)
                                                   where rtree.GetAllIntersecting(qrect1).Any() || rtree.GetAllIntersecting(qrect2).Any()
                                                   select edge).ToList();

            return(edges);
        }
 internal List <VisibilityEdge> GetUnusedGraphEdges()
 {
     return(PathRouter.GetAllEdgesVisibilityEdges().Where(e => !PathRouter.IsEdgeUsed(e)).ToList());
 }