Esempio n. 1
0
    private void StartHandTrackingLock()
    {
        bool result = false;

        if (WaveVR.Instance.IsHandTrackingEnabled())
        {
            result = true;
            SetHandTrackingStatus(WaveVR_Utils.HandTrackingStatus.AVAILABLE);
        }

        WaveVR_Utils.HandTrackingStatus status = GetHandTrackingStatus();
        if (this.EnableHandTracking &&
            (
                status == WaveVR_Utils.HandTrackingStatus.NOT_START ||
                status == WaveVR_Utils.HandTrackingStatus.START_FAILURE
            )
            )
        {
            SetHandTrackingStatus(WaveVR_Utils.HandTrackingStatus.STARTING);
            result = WaveVR.Instance.StartHandTracking();
            SetHandTrackingStatus(result ? WaveVR_Utils.HandTrackingStatus.AVAILABLE : WaveVR_Utils.HandTrackingStatus.START_FAILURE);
        }

        status = GetHandTrackingStatus();
        DEBUG("StartHandTrackingLock() " + result + ", status: " + status);
        WaveVR_Utils.Event.Send(WaveVR_Utils.Event.HAND_TRACKING_STATUS, status);

        if (handTrackingResultCB != null)
        {
            handTrackingResultCB(this, result);
            handTrackingResultCB = null;
        }
    }
Esempio n. 2
0
 public void GetHandTrackingData()
 {
     WaveVR_Utils.HandTrackingStatus status = GetHandTrackingStatus();
     if (status == WaveVR_Utils.HandTrackingStatus.AVAILABLE)
     {
         hasHandTrackingData = WaveVR.Instance.GetHandTrackingData(ref handSkeletonData, ref handPoseData, WaveVR_Render.Instance.origin);
     }
 }
Esempio n. 3
0
 private void SetHandTrackingStatus(WaveVR_Utils.HandTrackingStatus status)
 {
     try
     {
         handTrackingStatusRWLock.TryEnterWriteLock(2000);
         handTrackingStatus = status;
     }
     catch (Exception e)
     {
         Log.e(LOG_TAG, "SetHandTrackingStatus() " + e.Message, true);
         throw;
     }
     finally
     {
         handTrackingStatusRWLock.ExitWriteLock();
     }
 }
Esempio n. 4
0
    private void StopHandTrackingLock()
    {
        if (!WaveVR.Instance.IsHandTrackingEnabled())
        {
            SetHandTrackingStatus(WaveVR_Utils.HandTrackingStatus.NOT_START);
        }

        WaveVR_Utils.HandTrackingStatus status = GetHandTrackingStatus();
        if (status == WaveVR_Utils.HandTrackingStatus.AVAILABLE)
        {
            DEBUG("StopHandTrackingLock()");
            SetHandTrackingStatus(WaveVR_Utils.HandTrackingStatus.STOPING);
            WaveVR.Instance.StopHandTracking();
            SetHandTrackingStatus(WaveVR_Utils.HandTrackingStatus.NOT_START);
            hasHandTrackingData = false;
        }

        status = GetHandTrackingStatus();
        WaveVR_Utils.Event.Send(WaveVR_Utils.Event.HAND_TRACKING_STATUS, status);
    }