public Node GetBestNode() { if (IsFinalNode) { return(BestNode); } else { //recursiveCall var bestNodes = (Descendency.Where(k => k.BestNode != null).Select(k => k.BestNode)); return(bestNodes.Min()); } }
public Node GetBestNodeFromMostUndenseArea() { var areas = Descendency.Where(a => a.IsFinalNode && a.Density > 0.0).OrderBy(a => a.Density).ThenBy(a => a.BestNode); QuadTreeArea bestArea = areas.FirstOrDefault(); if (bestArea == null) { return(GetBestNode()); } else { return(bestArea.GetBestNode()); } }