/// <summary> /// Удаляет из списка указанный объект MArc /// </summary> /// <param name="arc">Удаляемый объект</param> /// <param name="arcs">Список из которого надо удалить</param> /// <returns>Результат удаления из списка</returns> public bool removeLink(MArc arc, List <MArc> arcs) { try { arcs.Remove(arc); return(true); } catch { return(false); } }
/// <summary> /// Добавление арки в один из листов объекта mTransition: inPlaces, outPlaces, /// т.е добавление указаного объекта MArc в нужный список. /// </summary> /// <param name="mTransition">Объекта класса MTransition в свойства которого добавлется MArc </param> /// <param name="arc">Добавляемый объекты MArc в указаный список mTransition</param> /// <returns>Результат добавление объекта MArc в список mTransition(true-успех, false - неудача)</returns> public bool addArc(MTransition mTransition, MArc arc) { if (arc.edge.isInEdge) { return(mTransition.addArc(arc, mTransition.inPlaces)); } else { return(mTransition.addArc(arc, mTransition.outPlaces)); } }
/// <summary> /// Добавление арки MArc в соответсвующий лист Арок: inPlaces или outPlaces /// </summary> /// <param name="arc">добавляемая арка MArc</param> /// <param name="places">лист арок в который происходит добавление</param> /// <returns>Успешно ли прошло добавление (Если уже есть такая арка, то false)</returns> public bool addArc(MArc arc, List <MArc> places) { foreach (var place in places) { if (place.edge.edge.Item1.label == arc.edge.edge.Item1.label) { if (place.edge.edge.Item2.label == arc.edge.edge.Item2.label) { return(false); } } } places.Add(arc); return(true); }
/// <summary> /// Метод удаления зависимостей из данного листа объекто типа MArc /// </summary> /// <param name="arc">арка с объекто MPlace для которого удаляем зависимость</param> /// <param name="arcs">Список откдуа удаляем зависимость</param> /// <returns>Результат удаления</returns> private bool deleteReference(MArc arc, List <MArc> arcs) { return(PetriNetsClassLibrary.PetriNet.CTransition.removeLink(arc, arcs)); }
/// <summary> /// Конструктор выставляющий по дефолту некоторые переменные /// </summary> public Line(bool isInhibitor) { LineWidth = 2; LineColor = Color.Black; points = new List <PointF>(); mArc = new MArc(isInhibitor); this.isInhibitor = isInhibitor; }