コード例 #1
0
        void _listener_Frame(object sender, ControllerEventArgs e)
        {
            //Todo: Get rid of the dispatcher if possible
            Dispatcher.Invoke((Action)(() =>
            {
                Frame frame = _leap.Frame();

                if (frame.Fingers.Count > 0)
                {
                    Finger finger = frame.Fingers.First();
                    if (finger != null)
                    {
                        Vector vec = finger.Direction;
                        RawRotation = QuaternionHelper.EulerAnglesInRadToQuaternion(
                            RotationFactor * vec.Pitch,
                            RotationFactor * vec.Yaw,
                            0);
                        RawPosition = new Vector3D(
                            finger.TipPosition.x,
                            -finger.TipPosition.y,
                            finger.TipPosition.z
                            );
                    }

                    if (frame.Fingers.Count >= 5)
                    {
                        Calibrate();
                    }

                    UpdatePositionAndRotation();
                }
            }));
        }
コード例 #2
0
ファイル: LeapTracker.cs プロジェクト: Inner-room/VrPlayer
        void _listener_Frame(object sender, ControllerEventArgs e)
        {
            //Todo: Get rid of the dispatcher if possible
            Dispatcher.Invoke((Action)(() =>
            {
                Frame frame = _leap.Frame();

                if (frame.Fingers.Count > 0)
                {
                    Finger finger = frame.Fingers.First();
                    if (finger != null)
                    {
                        Vector vec = finger.Direction;
                        RawRotation = QuaternionHelper.EulerAnglesInRadToQuaternion(
                            RotationFactor * vec.Pitch,
                            RotationFactor * vec.Yaw,
                            0);
                        RawPosition = new Vector3D(
                            finger.TipPosition.x,
                            -finger.TipPosition.y,
                            finger.TipPosition.z
                            );
                    }

                    if (frame.Fingers.Count >= 5)
                    {
                        Calibrate();
                    }

                    UpdatePositionAndRotation();
                }
            }));
         }