Пример #1
0
        public override void render(float elapsedTime)
        {
            Device d3dDevice = GuiController.Instance.D3dDevice;


            TgcKinectSkeletonData data = tgcKinect.update();

            if (data.Active)
            {
                tgcKinect.DebugSkeleton.render(data.Current.KinectSkeleton);


                Vector3 headPos   = TgcKinectUtils.toVector3(data.Current.KinectSkeleton.Joints[JointType.Head].Position);
                Vector3 centerPos = TgcKinectUtils.toVector3(data.Current.KinectSkeleton.Joints[JointType.HipCenter].Position);
                float   length    = Vector3.Length(headPos - centerPos);
                BigLogger.log("Length", length);

                BigLogger.log("HipCenter", data.Current.CenterPos);
                BigLogger.log("RightHandPos", data.Current.RightHandPos);
                BigLogger.log("LefttHandPos", data.Current.LefttHandPos);
                BigLogger.renderLog();
            }


            GuiController.Instance.UserVars["tracking"] = data.Active.ToString();



            center.render();
            bounds.render();
        }
Пример #2
0
        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();
            }
        }
Пример #3
0
        /// <summary>
        /// Devuelve el centro del BoundingBox de todo el conjunto de meshes del cajon proyectado a la pantalla.
        /// </summary>
        public Vector2 getScreenCenter()
        {
            //Mover el centro del conjunto si esta abierto
            Vector3 pos = conjuntoCenter;

            if (currentState == State.Opened || currentState == State.Opening)
            {
                pos = getMovementVec() * conjunto.Max;
            }

            return(TgcKinectUtils.projectPoint(pos));
        }
Пример #4
0
 public static void log(string text, SkeletonPoint p)
 {
     BigLogger.log(text, TgcKinectUtils.toVector3(p));
 }