/// <summary> /// Buscar el cajon mas cerca de donde se produzco el gesto y abrirlo /// </summary> private void abrirCajon(Vector3 pos) { //Proyectar posicion del gesto a 2D Vector2 pos2D = TgcKinectUtils.projectPoint(pos); float minDist = float.MaxValue; CajonFocus cajonMasCerca = null; //Buscar el cajon que esté mas cerca foreach (CajonFocus c in cajones) { //Que este cerrado if (c.CurrentState == CajonFocus.State.Closed) { //Ver distancia en 2D float dist = Vector2.Length(pos2D - c.getScreenCenter()); if (dist < minDist) { minDist = dist; cajonMasCerca = c; } } } //Ver si encontramos uno suficientemente cerca if (cajonMasCerca != null && minDist < CAJON_MIN_DIST_GESTO) { cajonMasCerca.open(); } }