Exemplo n.º 1
0
        /// <summary>
        /// pour calculsortie()
        /// </summary>
        /// <param name="outil"></param>
        /// <param name="hs"></param>
        //pour calculsortie()
        public void EvaluatePerso(Outils outil, ICollection <Edge <Outils> > hs)
        {
            if (!outil.end || Circuit.InEdges(outil) != null)
            {
                IEnumerable <Edge <Outils> > inEdges = Circuit.InEdges(outil);
                foreach (Edge <Outils> edge in inEdges)
                {
                    if (!hs.Contains(edge))
                    {
                        hs.Add(edge);
                        EvaluatePerso(edge.Source, hs);
                    }
                }
            }

            outil.calcul_sorties();
        }
Exemplo n.º 2
0
        /// <summary>
        /// Evalue le circuit en considérant outil sa fin
        /// </summary>
        /// <param name="outil">La fin du circuit considéré</param>
        /// <param name="hs">Collection des edges déjà passé par</param>
        public void Evaluate(Outils outil, ICollection <Edge <Outils> > hs)
        {
            if (Circuit.ContainsVertex(outil))
            {
                if (!Circuit.IsInEdgesEmpty(outil))
                {
                    IEnumerable <Edge <Outils> > inEdges = Circuit.InEdges(outil);

                    foreach (Edge <Outils> edge in inEdges)
                    {
                        if (!hs.Contains(edge))
                        {
                            hs.Add(edge);
                            Evaluate(edge.Source, hs);//on remonte au debut du circuit
                        }
                    }
                }
            }
            outil.calcul_sorties();//on calcul en décendant vers la fin du circuit
        }