public static void DrawRestrictionLabel(Figures.Edge e, MemoryBitmap bitmap, Color?color = null, Figures.Edge.Restriction?restriction = null) { int restrictionBoxSizeDiv2 = Helper.restrictionBoxSize / 2; Point point = new Point(((int)e.Previous.X + (int)e.Next.X) / 2, ((int)e.Previous.Y + (int)e.Next.Y) / 2); int startX = point.X - restrictionBoxSize, endX = point.X + restrictionBoxSize; int midX = (endX + startX) / 2; int startY = point.Y - restrictionBoxSizeDiv2, endY = point.Y + restrictionBoxSizeDiv2; for (int x = startX; x <= midX; x++) { for (int y = startY; y <= endY; y++) { bitmap.SetPixel(x, y, color.HasValue ? color.Value.ToArgb() : e.RestrictionData); } } for (int x = midX; x <= endX; x++) { for (int y = startY; y <= endY; y++) { bitmap.SetPixel(x, y, color.HasValue ? color.Value.ToArgb() : e.RestrictionData); } } for (int x = startX + 1; x <= midX - 1; x++) { for (int y = startY + 1; y <= endY - 1; y++) { bitmap.SetPixel(x, y, Color.White); } } for (int x = startX + 1; x <= endX - 1; x++) { for (int y = startY + 1; y <= endY - 1; y++) { bitmap.SetPixel(x, y, Color.White); } } Graphics g = bitmap.GetGraphics(); g.DrawString(restriction.HasValue ? "X" : e.RestrictionNum.ToString(), f, Brushes.Black, midX + padding, startY + padding); if (!restriction.HasValue) { restriction = e.EnactedRestriction; } DrawRestrictionIcon(bitmap, restriction.Value, startX + padding, startY + padding, midX - padding, endY - padding); }
public void ReclaimRelationNum(Edge edge) { relationNumbersUsedList[edge.RestrictionNum - 1] = false; }