Esempio n. 1
0
        //---------------------------------------
        private bool PlaceFilsACoordonnées(IObjetACoordonnees fils, CNiveauCoordonnee[] niveaux)
        {
            if (niveaux == null || niveaux.Length == 0)
            {
                return(false);
            }
            C2iComposant3D composant = fils.GetComposantPhysique();

            if (composant == null)
            {
                return(false);
            }
            IEnumerable <IComposantPourObjetACoordonnées> lstPossibles = GetTousLesFilsPourElementsACoordonnées(niveaux[0].Prefixe);

            if (lstPossibles.Count() > 0)
            {
                IComposantPourObjetACoordonnées composantParent = lstPossibles.ElementAt(0);
                if (niveaux.Length == 1)
                {
                    return(composantParent.AddFilsWithIndex(composant, niveaux[0].Index));
                }
                else
                {
                    List <CNiveauCoordonnee> lst = new List <CNiveauCoordonnee>(niveaux);
                    lst.RemoveAt(0);
                    return(composant.PlaceFilsACoordonnées(fils, lst.ToArray()));
                }
            }
            return(false);
        }
Esempio n. 2
0
 //---------------------------------------
 protected void FillListeFilsPourElementsACoordonnées(List <IComposantPourObjetACoordonnées> lst, string strPrefixe)
 {
     foreach (C2iComposant3D fils in Childs)
     {
         IComposantPourObjetACoordonnées cp = fils as IComposantPourObjetACoordonnées;
         if (cp != null && (cp.PrefixesCoordonneeAssocies.Count() == 0 || cp.PrefixesCoordonneeAssocies.Contains(strPrefixe)))
         {
             lst.Add(cp);
         }
         fils.FillListeFilsPourElementsACoordonnées(lst, strPrefixe);
     }
 }