public override bool Generar(SeccionDeLayout seccion) { var primeraPasada = base.Generar(seccion); if (!primeraPasada) { return(false); } var diamPuertas = seccion.arbol.OverlapMinimoParaConectar; var bouds = new Bounds(); bouds.SetMinMax(new Vector3( seccion.cuartosPropios.Min(cuarto => cuarto.Offset.x - cuarto.Size.x / 2f), seccion.cuartosPropios.Min(cuarto => cuarto.Offset.y - cuarto.Size.y / 2f), 0f), new Vector3( seccion.cuartosPropios.Max(cuarto => cuarto.Offset.x + cuarto.Size.x / 2f), seccion.cuartosPropios.Max(cuarto => cuarto.Offset.y + cuarto.Size.y / 2f), 0f) ); // seccion.cuartosPropios.OrderBy(cuarto=>cuarto.) // pisos.AddRange( // seccion.cuartosPropios.Select(cuarto=>new Piso(){ // altura = cuarto.Offset.y-cuarto.Size.y/2f, // segmentos = new List<Vector2>(new []{new Vector2(bouds.min.x,bouds.max.x)}), // }).Concat( // seccion.Puertas.Select(puerta=>new Piso(){ // altura = puerta.y-diamPuertas/2f, // segmentos = new List<Vector2>(new []{new Vector2(bouds.min.x,bouds.max.x)}), // }).Concat( // subCuartos. // ).ToArray()); return(primeraPasada); }
public abstract bool Generar(SeccionDeLayout seccion);
public bool ReGenerar(SeccionDeLayout seccion) { Clear(); return(Generar(seccion)); }
public virtual float SeccionUsable(SeccionDeLayout seccion) { return(1f); }