private static List <DScanGroup> MergeCloseGroups(IEnumerable <DScanGroup> groups) { var result = new List <DScanGroup>(); DScanGroup lastGroup = null; foreach (var curGroup in groups) { if (lastGroup == null) { lastGroup = curGroup; } else { if (curGroup.Boundary.Upper - lastGroup.Boundary.Upper <= KM_OFFSET) { lastGroup.Boundary = new Boundary(lastGroup.Boundary.Lower, curGroup.Boundary.Upper); lastGroup.Items = lastGroup.Items.Union(curGroup.Items).ToList(); } else { result.Add(lastGroup); lastGroup = curGroup; } } } result.Add(lastGroup); return(result); }
protected virtual void OnSuccess(DScanGroup obj) { Action <DScanGroup> handler = Success; if (handler != null) { handler(obj); } }
protected virtual void OnPotentiallyFoundAtDScanItemGroup(DScanGroup obj) { Action <DScanGroup> handler = PotentiallyFoundAtDScanItemGroup; if (handler != null) { handler(obj); } }