public virtual ISelectable[] GetFromSubGroupOnScreen(ISelectable selected) { var allOnScreen = AreaSelectionType.GetAllInsideViewportArea(GetMainList(), this.ViewportHelper.InitialViewportPoint, this.ViewportHelper.FinalViewportPoint); ISelectable[] result = SubGroupUtil.FilterBySubGroup(allOnScreen, selected, EqualityComparer); return(DistanceHelper.SortWorldSpace(result, selected.Position)); }
public ISelectable[] GetSelection(ISelectable[] mainList, Vector2 startScreenPoint, Vector2 endPoint) { List <ISelectable> result = new List <ISelectable>(); if (mainList == null) { return(result.ToArray()); } for (int i = 0; i < mainList.Length; i++) { if (_areaSelection.IsInsideScreenPoints(startScreenPoint, endPoint, mainList[i])) { result.Add(mainList[i]); } } ISelectable[] selectables = DistanceHelper.SortScreenSpace(result, startScreenPoint); return(selectables); }
public virtual ISelectable[] FilterBySubGroup(ISelectable[] selectables, ISelectable selected) { ISelectable[] result = SubGroupUtil.FilterBySubGroup(selectables, selected, EqualityComparer); return(DistanceHelper.SortWorldSpace(result, selected.Position)); }