예제 #1
0
 public IEnumerable <int> Cull(Common.Bounding.IBounding bounding)
 {
     if (id != -1)
     {
         yield return(id);
     }
     else
     {
         Common.Bounding.EVHLinePlacement p = bounding.VHLinePlacement(verticalSplit, split);
         if (p == Common.Bounding.EVHLinePlacement.LeftTop ||
             p == Common.Bounding.EVHLinePlacement.Intersect)
         {
             foreach (int i in children[0].Cull(bounding))
             {
                 yield return(i);
             }
         }
         if (p == Common.Bounding.EVHLinePlacement.RightBottom ||
             p == Common.Bounding.EVHLinePlacement.Intersect)
         {
             foreach (int i in children[1].Cull(bounding))
             {
                 yield return(i);
             }
         }
     }
 }
예제 #2
0
 public IEnumerable <int> Cull(Common.Bounding.IBounding bounding)
 {
     return(root.Cull(bounding));
 }