Beispiel #1
0
 public void Shorten()
 {
     for (int i = pairs.Count - 1; i >= 0; i--)
     {
         for (int j = pairs.Count - 1; j >= 0 && i >= 0; j--)
         {
             if (pairs[i].IsInRange(pairs[j].Minor))
             {
                 if (!pairs[i].IsInRange(pairs[j].Major))
                 {
                     pairs[i] = new AnglePair(pairs[i].Minor, pairs[j].Major);
                     pairs.RemoveAt(j);
                     i--;
                     j--;
                 }
             }
             else if (pairs[i].IsInRange(pairs[j].Major))
             {
                 if (!pairs[i].IsInRange(pairs[j].Minor))                         //Should be always true
                 {
                     pairs[i] = new AnglePair(pairs[j].Minor, pairs[i].Major);
                     pairs.RemoveAt(j);
                     i--;
                     j--;
                 }
             }
         }
     }
 }
Beispiel #2
0
 public void Add(AnglePair add)
 {
     for (int i = 0; i < pairs.Count; i++)
     {
         if (pairs[i].IsInRange(add.Minor))
         {
             if (!pairs[i].IsInRange(add.Major))
             {
                 pairs[i] = new AnglePair(pairs[i].Minor, add.Major);
             }
             return;
         }
         else if (pairs[i].IsInRange(add.Major))
         {
             if (!pairs[i].IsInRange(add.Minor))                    //Should be always true
             {
                 pairs[i] = new AnglePair(add.Minor, pairs[i].Major);
             }
             return;
         }
     }
     pairs.Add(add);
 }
Beispiel #3
0
 public bool ContainsAny(Angle angle, out AnglePair pair)
 {
     pair = pairs.Where(p => p.IsInRange(angle)).FirstOrDefault();
     return(pairs.Any(p => p.IsInRange(angle)));
 }