Пример #1
0
    public bool CanAddDimensionRange(DimensionSectorRange current)
    {
        //optimizador
        if (current.x_max < x_global_min)
        {
            return(true);
        }
        if (current.x_min > x_global_max)
        {
            return(true);
        }
        if (current.z_max < z_global_min)
        {
            return(true);
        }
        if (current.z_min > z_global_max)
        {
            return(true);
        }

        //si no se cumple ninguna de las 4, es una lastima xq no se puede optimizar

        //Debug.Log("Sector Range Count: " + sector_range.Count);

        foreach (var s in sector_range)
        {
            if (current.EstaDentroDe(s))
            {
                return(false);
            }
        }
        return(true);
    }
Пример #2
0
    public void AddDimensionRange(DimensionSectorRange toadd)
    {
        //optimizador
        x_global_max = toadd.x_max > x_global_max ? toadd.x_max : x_global_max;
        x_global_min = toadd.x_min < x_global_min ? toadd.x_min : x_global_min;
        z_global_max = toadd.z_max > z_global_max ? toadd.z_max : z_global_max;
        z_global_min = toadd.z_min < z_global_min ? toadd.z_min : z_global_min;

        sector_range.Add(toadd);
    }
Пример #3
0
    //al pedo hacerle un initialize...
    //porque vamos a usar los Position asi como viene

    //aca deveria hacerle el ONGUI

    public void Initialize()
    {
        drawgizmos = false;

        dimensionSectorRange       = new DimensionSectorRange();
        dimensionSectorRange.x_min = (int)XiZi.transform.position.x;
        dimensionSectorRange.z_min = (int)XfZf.transform.position.z;

        dimensionSectorRange.x_max = (int)XfZf.transform.position.x;
        dimensionSectorRange.z_max = (int)XiZi.transform.position.z;
    }
Пример #4
0
    public static bool EstaDentroDe(this DimensionSectorRange curr, DimensionSectorRange i)
    {
        bool res = false;

        if (curr.x_min.Inside(i.x_min, i.x_max) || curr.x_max.Inside(i.x_min, i.x_max))
        {
            if (curr.z_min.Inside(i.z_min, i.z_max) || curr.z_max.Inside(i.z_min, i.z_max))
            {
                res = true;
            }
            else
            {
                if (i.z_min.Inside(curr.z_min, curr.z_max) || i.z_max.Inside(curr.z_min, curr.z_max))
                {
                    res = true;
                }
                else
                {
                    res = false;
                }
            }
        }
        else
        {
            if (curr.z_min.Inside(i.z_min, i.z_max) || curr.z_max.Inside(i.z_min, i.z_max))
            {
                if (curr.x_min.Inside(i.x_min, i.x_max) || curr.x_max.Inside(i.x_min, i.x_max))
                {
                    res = true;
                }
                else
                {
                    if (i.x_min.Inside(curr.x_min, curr.x_max) || i.x_max.Inside(curr.x_min, curr.x_max))
                    {
                        res = true;
                    }
                    else
                    {
                        res = false;
                    }
                }
            }
            else
            {
                res = false;
            }
        }


        return(res);


        //bool res =
        //    (
        //        (
        //            (curr.x_min.Inside(i.x_min, i.x_max) || curr.x_max.Inside(i.x_min, i.x_max))
        //        )
        //            &&
        //        (
        //            (curr.z_min.Inside(i.z_min, i.z_max) || curr.z_max.Inside(i.z_min, i.z_max))
        //        )
        //    );

        //return res;
    }