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); } }
public virtual void AddObject(GeometricObject o) { bbox = BBox.Join(bbox, o.GetBoundingBox()); Objects.Add(o); }
public override void AddObject(GeometricObject o) { bbox.Union(o.GetBoundingBox()); Objects.Add(o); }