/* * Funcion: distribuirLiquidoHorizontalmente() * * Ejecuta la operacion de distribucion de liquido horizontal para la celda actual. */ public void distribuirLiquidoHorizontalmente() { Celda abajo = getCeldaAbajo(); if (abajo != null && !abajo.es_solido && abajo.estaEnAire()) { return; } if (!puedeFluirHaciaAbajo() && saturacion > 0f) { procesarFlujoHorizontal(); } }
/* * Funcion: estaEnAire() * * Devuelve true si la celda esta en el aire, falso si no. * * Si la celda abajo de la celda actual existe (i.e. la celda actual tiene indice_y > 0), la celda abajo no es solida * y la celda abajo tiene saturacion > 0, entonces el devuelve el resultado de llamar la funcion estaEnAire() de la * celda abajo. * * Si no se cumple la condicion anterior, devuelve el resultado de la funcion puedeFluirHaciaAbajo(). */ public bool estaEnAire() { Celda abajo = getCeldaAbajo(); if (abajo != null && !abajo.es_solido && abajo.saturacion > 0f) { return(abajo.estaEnAire()); } if (puedeFluirHaciaAbajo()) { esta_en_aire = true; } else { esta_en_aire = false; } return(esta_en_aire); }