/// <summary> /// en cas de changement d'etat d'une horloge ou d'un pinin /// </summary> /// <param name="iN"></param> public void EvaluateCircuit(IN iN) { ICollection <Edge <Outils> > hs = new HashSet <Edge <Outils> >(); foreach (Outils outil in iN.getEndListe()) { this.Evaluate(outil, hs); } }
/// <summary> /// Construire la liste de fin d'un element /// </summary> /// <param name="iN"></param> public void EndCircuit(IN iN, ICollection <Edge <Outils> > hs) { Outils o = this; if ((iN.circuit.getCircuit().OutEdges(o)).Any()) { foreach (Edge <Outils> edge in iN.circuit.getCircuit().OutEdges(o)) { if (!hs.Contains(edge)) { hs.Add(edge); if ((edge.Target is PinOut) || edge.Target.Empty()) { iN.getEndListe().Add(edge.Target); } else { edge.Target.EndCircuit(iN, hs); } } } } }