public override void AddObject(GeometricObject o)
 {
     if (grouping == GroupingMethod.DistanceR)
     {
         float           t = float.MaxValue;
         GeometricObject a = o;
         for (int i = 0; i < Objects.Count; i++)
         {
             GeometricObject b = Objects[i];
             if (o != b)
             {
                 float temp = distance(o.GetBoundingBox(), b.GetBoundingBox());
                 if (temp < t)
                 {
                     t = temp;
                     a = b;
                     break;
                 }
             }
         }
         if (Objects.Count > 1)
         {
             Objects.Remove(a);
             Group g = new Group(Name + "Group" + gcount);
             gcount++;
             g.AddObject(a);
             g.AddObject(o);
             Objects.Add(g);
         }
         else
         {
             Objects.Add(a);
         }
     }
     else if (grouping == GroupingMethod.DistanceM)
     {
         temp.Add(o);
     }
 }
示例#2
0
 public virtual void AddObject(GeometricObject o)
 {
     bbox = BBox.Join(bbox, o.GetBoundingBox());
     Objects.Add(o);
 }
示例#3
0
 public override void AddObject(GeometricObject o)
 {
     bbox.Union(o.GetBoundingBox());
     Objects.Add(o);
 }
示例#4
0
 public virtual void AddObject(GeometricObject o)
 {
     bbox = BBox.Join(bbox, o.GetBoundingBox());
     Objects.Add(o);
 }
示例#5
0
 public override void AddObject(GeometricObject o)
 {
     bbox.Union(o.GetBoundingBox());
     Objects.Add(o);
 }