private void cerrarCajon(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 abierto if (c.CurrentState == CajonFocus.State.Opened) { //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.close(); } }