/// <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); } }
public void RecupEntré(IN outils) { foreach (OutStruct outs in outils.getListesorties()[0].get_OutStruct()) { this.nb_entrees++; ClasseEntree entree = outs.GetEntree(); entree.setDispo(Disposition.left); entree.setRelated(false); outs.getOutils().end = true; this.liste_entrees.Add(entree);//on ajoute l'entrée //creation de la liste pour la sauvegarde aprés réutilisation this.Entrée.Add(new Point(outs.getOutils().id, outs.getOutils().getListeentrees().IndexOf(outs.GetEntree()))); ((Grid)(entree.Parent)).Children.Remove(entree); } }
/// <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); } } } } }