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); }
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); }
//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; }
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; }