Example #1
0
        /// <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();
            }
        }