/// <summary> /// Will return all crsytalls the Rect Lines intersect /// </summary> /// <param name="rect"></param> /// <param name="histoRegions"></param> /// <returns></returns> public List <Crystal> ReturnCrystalsRectIntersect(Rect rect, List <int> histoRegions) { List <Crystal> res = new List <Crystal>(); var crystals = GiveAllCrystalsInTheseRegionsExcludLinkRects(histoRegions); var rectlines = U2D.FromRectToLines(rect); for (int i = 0; i < crystals.Count; i++) { for (int j = 0; j < crystals[i].Lines.Count; j++) { var lineOnCrys = crystals[i].Lines[j]; for (int k = 0; k < rectlines.Count; k++) { var line = rectlines[k]; if (line.IsIntersecting((lineOnCrys))) { lineOnCrys.DebugRender(Color.grey, 10); res.Add(crystals[i]); } } } } return(res); }
/// <summary> /// Will tell if rect intersect any line on the Terra Crystals. /// </summary> /// <param name="rect"></param> /// <returns></returns> public bool DoIIntersectAnyLine(Rect rect, Vector2 pos) { var list = ReturnMySurroundRegions(pos); var crystals = GiveAllTerraCrystalsInTheseRegions(list); var rectlines = U2D.FromRectToLines(rect); for (int i = 0; i < crystals.Count; i++) { for (int j = 0; j < crystals[i].Lines.Count; j++) { var line = crystals[i].Lines[j]; for (int k = 0; k < rectlines.Count; k++) { if (rectlines[k].IsIntersecting(line)) { return(true); } } } } return(false); }