public abstract List <T> Search(DominoRectangle region, List <T> result);
public bool Intersects(DominoRectangle rect) { return(boundingbox.Intersects(rect)); }
// erster Wert: Index, zweiter Wert gibt an, zu welcher Gruppe er gehören soll (false = Gruppe2, true=Gruppe1) private Tuple <int, bool> PickNext <A>(List <A> list, DominoRectangle bounding1, DominoRectangle bounding2) where A : Geometry { double preference = 0; int preferred = 0; bool l = false; for (int i = 0; i < list.Count; i++) { var result1 = bounding1.SizeOfCommonBoundingRectangle(list[i].getBoundingRectangle()) - bounding1.Size; var result2 = bounding2.SizeOfCommonBoundingRectangle(list[i].getBoundingRectangle()) - bounding2.Size; var pref = result2 - result1; if (Math.Abs(pref) > preference) { preferred = i; preference = Math.Abs(pref); l = pref > 0; } } return(new Tuple <int, bool>(preferred, l)); }