Exemple #1
0
        /// <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));
            }
        }
Exemple #3
0
 public bool EstIdentiqueA(Cable cable)
 {
     return(this.PositionDepart == cable.PositionDepart && this.PositionArrivee == cable.PositionArrivee);
 }
Exemple #4
0
 /// <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));
 }