public ConnectorRouter.ConnectorSegment GetCover(Point p, DesignerEdges side) { ConnectorRouter.ConnectorSegment segment = null; int num = 0; if ((side == DesignerEdges.Left) || (side == DesignerEdges.Right)) { for (int j = 0; j < this.verticalCovers.Count; j++) { ConnectorRouter.ConnectorSegment segment2 = this.verticalCovers[j]; int num3 = (side == DesignerEdges.Left) ? (p.X - segment2.A.X) : (segment2.A.X - p.X); if (((num3 > 0) && segment2.Covers(p)) && ((segment == null) || (num > num3))) { segment = segment2; num = num3; } } return(segment); } for (int i = 0; i < this.horizontalCovers.Count; i++) { ConnectorRouter.ConnectorSegment segment3 = this.horizontalCovers[i]; int num5 = (side == DesignerEdges.Bottom) ? (p.Y - segment3.A.Y) : (segment3.A.Y - p.Y); if (((num5 > 0) && segment3.Covers(p)) && ((segment == null) || (num > num5))) { segment = segment3; num = num5; } } return(segment); }
public List <ConnectorRouter.ConnectorSegment> GetCovers(Point p, DesignerEdges side) { List <ConnectorRouter.ConnectorSegment> list = new List <ConnectorRouter.ConnectorSegment>(); if ((side == DesignerEdges.Left) || (side == DesignerEdges.Right)) { for (int j = 0; j < this.verticalCovers.Count; j++) { ConnectorRouter.ConnectorSegment item = this.verticalCovers[j]; int num2 = (side == DesignerEdges.Left) ? (p.X - item.A.X) : (item.A.X - p.X); if ((num2 > 0) && item.Covers(p)) { list.Add(item); } } return(list); } for (int i = 0; i < this.horizontalCovers.Count; i++) { ConnectorRouter.ConnectorSegment segment2 = this.horizontalCovers[i]; int num4 = (side == DesignerEdges.Bottom) ? (p.Y - segment2.A.Y) : (segment2.A.Y - p.Y); if ((num4 > 0) && segment2.Covers(p)) { list.Add(segment2); } } return(list); }
public static ConnectorRouter.ConnectorSegment SegmentFromLeftToRightCover(ConnectorRouter.CoverSet coverSet, Point p) { ConnectorRouter.ConnectorSegment cover = coverSet.GetCover(p, DesignerEdges.Left); ConnectorRouter.ConnectorSegment segment2 = coverSet.GetCover(p, DesignerEdges.Right); Point point = new Point((cover != null) ? cover.A.X : -2147483648, p.Y); return(new ConnectorRouter.ConnectorSegment(point, new Point((segment2 != null) ? segment2.A.X : 0x7fffffff, p.Y))); }
public static ConnectorRouter.ConnectorSegment SegmentFromBottomToTopCover(ConnectorRouter.CoverSet coverSet, Point p) { ConnectorRouter.ConnectorSegment cover = coverSet.GetCover(p, DesignerEdges.Bottom); ConnectorRouter.ConnectorSegment segment2 = coverSet.GetCover(p, DesignerEdges.Top); Point point = new Point(p.X, (cover != null) ? cover.A.Y : -2147483648); return(new ConnectorRouter.ConnectorSegment(point, new Point(p.X, (segment2 != null) ? segment2.A.Y : 0x7fffffff))); }
public override bool Equals(object obj) { ConnectorRouter.ConnectorSegment segment = obj as ConnectorRouter.ConnectorSegment; if (segment == null) { return(false); } return(((this.point1 == segment.A) && (this.point2 == segment.B)) && (this.Orientation == segment.Orientation)); }
public bool EscapeLineHasBeenUsed(ConnectorRouter.ConnectorSegment segment, Point escapePoint) { for (int i = 0; i < this.usedEscapeLine.Count; i++) { ConnectorRouter.ConnectorSegment segment2 = this.usedEscapeLine[i]; if (segment2.IsPointOnSegment(escapePoint)) { return(true); } } return(false); }
public Point?Intersect(ConnectorRouter.ConnectorSegment segment) { if (this.orientation != segment.Orientation) { ConnectorRouter.ConnectorSegment segment2 = (this.orientation == System.Windows.Forms.Orientation.Vertical) ? this : segment; ConnectorRouter.ConnectorSegment segment3 = (this.orientation == System.Windows.Forms.Orientation.Vertical) ? segment : this; if ((segment2.A.X < Math.Min(segment3.A.X, segment3.B.X)) || (segment2.A.X > Math.Max(segment3.A.X, segment3.B.X))) { return(null); } if ((segment3.A.Y >= Math.Min(segment2.A.Y, segment2.B.Y)) && (segment3.A.Y <= Math.Max(segment2.A.Y, segment2.B.Y))) { return(new Point(segment2.A.X, segment3.A.Y)); } } return(null); }
public void AddCover(ConnectorRouter.ConnectorSegment cover) { List <ConnectorRouter.ConnectorSegment> list = (cover.Orientation == Orientation.Vertical) ? this.verticalCovers : this.horizontalCovers; for (int i = 0; i < list.Count; i++) { ConnectorRouter.ConnectorSegment segment = list[i]; if (cover.IsPointOnSegment(segment.A) && cover.IsPointOnSegment(segment.B)) { list.RemoveAt(i); break; } if (segment.IsPointOnSegment(cover.A) && segment.IsPointOnSegment(cover.B)) { return; } } list.Add(cover); }
public bool IsEscapePoint(Point origin, Point escape, DesignerEdges side) { int num; ConnectorRouter.ConnectorSegment cover = this.GetCover(origin, side); if ((side == DesignerEdges.Left) || (side == DesignerEdges.Right)) { num = cover.A.X - escape.X; } else { num = cover.A.Y - escape.Y; } if (cover.Covers(escape)) { return(false); } List <ConnectorRouter.ConnectorSegment> covers = this.GetCovers(escape, side); for (int i = 0; i < covers.Count; i++) { int num3; ConnectorRouter.ConnectorSegment segment2 = covers[i]; if (segment2 == cover) { return(false); } if ((side == DesignerEdges.Left) || (side == DesignerEdges.Right)) { num3 = Math.Abs((int)(segment2.A.X - escape.X)); } else { num3 = Math.Abs((int)(segment2.A.Y - escape.Y)); } if ((Math.Sign(num3) == Math.Sign(num)) && (Math.Abs(num3) < Math.Abs(num))) { return(false); } } return(true); }
public void AddUsedEscapeLine(ConnectorRouter.ConnectorSegment segment) { this.usedEscapeLine.Add(segment); }