示例#1
0
    /// <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);
    }
示例#2
0
    /// <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);
    }