/// <summary> /// 标记插槽容器相关的连接线 /// </summary> /// <param name="slotContainer">当前插槽容器</param> /// <param name="mark">是否标记</param> private void MarkRelavateLines(SlotContainer slotContainer, bool mark) { foreach (ConnectorContainer line in slotContainer.GetConnectedLine()) { line.Marked = mark; } }
/// <summary> /// 更新插槽容器所在的区域 /// </summary> /// <param name="slotContainer">当前插槽容器</param> private void ChangeRegion(SlotContainer slotContainer) { bool added = false; // 是否已经添加到区域中 foreach (RegionData regionData in regionDataList) { if (regionData.Contains(slotContainer) && !regionData.IsInRegion(slotContainer.InvalidRectangle)) { regionData.Remove(slotContainer); } if (!regionData.Contains(slotContainer) && regionData.IsInRegion(slotContainer.InvalidRectangle)) { regionData.Add(slotContainer); added = true; } } if (!added) { backupRegionData.Add(slotContainer); } // 更新相关连接线所在的区域 foreach (ConnectorContainer line in slotContainer.GetConnectedLine()) { ChangeRegion(line); } }