/// <summary> /// Indique si le câble spécifié /// SE CROISE /// avec le câble courant. /// </summary> /// <param name="cable"><see cref="Cable"/>.</param> /// <returns>Vrai, si les câbles se croisent. Faux, sinon.</returns> public bool SeCroiseAvec(Cable cable) { if (this.EstIdentiqueA(cable)) { throw new NotSupportedException("Le câble spécifié est identique au câble courant."); } return((this.PositionDepart < cable.PositionDepart && this.PositionArrivee > cable.PositionArrivee) || (this.PositionDepart > cable.PositionDepart && this.PositionArrivee < cable.PositionArrivee)); }
public Centrale(ICollection <Tuple <int, int> > input) { this.CroisementsParCable = new Dictionary <Cable, ICollection <Cable> >(input.Count); foreach (var tuple in input) { var newCable = new Cable(tuple.Item1, tuple.Item2); newCable.Branchement += OnBranchementCable; newCable.Debranchement += OnDebranchementCable; this.CroisementsParCable.Add(newCable, new List <Cable>(input.Count)); } }
public bool EstIdentiqueA(Cable cable) { return(this.PositionDepart == cable.PositionDepart && this.PositionArrivee == cable.PositionArrivee); }
/// <summary> /// Indique si le câble spécifié /// NE SE CROISE PAS /// avec le câble courant. /// </summary> /// <param name="cable"><see cref="Cable"/>.</param> /// <returns>Vrai, si les câbles ne se croisent pas. Faux, sinon.</returns> public bool NeSeCroisePasAvec(Cable cable) { return(!this.SeCroiseAvec(cable)); }