Пример #1
0
 public bool TryToAddRib(Rib rib)
 {
     if (HasRib(rib))
     {
         if (rib.End != Start.Name)
         {
             return(false);
         }
     }
     Ribs.Add(rib);
     return(true);
 }
Пример #2
0
        public override bool Equals(object obj)
        {
            if ((obj == null) || !this.GetType().Equals(obj.GetType()))
            {
                return(false);
            }

            Rib toCompare = (Rib)obj;

            return((this.Start == toCompare.Start && this.End == toCompare.End) ||
                   (this.Start == toCompare.End && this.End == toCompare.Start));
        }
Пример #3
0
        private void GetCyclesForRib(Cycle cycle, Rib currentRib)
        {
            if (cycle.IsValid)
            {
                cycleCollection.TryToAddCycle(cycle);
                return;
            }
            Node nextNode = TraverseRib(currentRib);

            if (nextNode.Ribs == null || nextNode.Ribs.Count == 0)
            {
                return;
            }
            foreach (Rib rib in nextNode.Ribs)
            {
                Cycle currentCycle = cycle.Copy();
                if (currentCycle.TryToAddRib(rib))
                {
                    GetCyclesForRib(currentCycle, rib);
                }
            }
        }
Пример #4
0
 public bool HasRib(Rib rib)
 {
     return(Ribs.Contains(rib));
 }
Пример #5
0
 private Node TraverseRib(Rib rib)
 {
     return(GetNodeByName(rib.End));
 }