// Update is called once per frame
 void Update()
 {
     if (sm != null)
     {
         /* Wait until any frame data is available */
         if (sm.AcquireFrame(false, 0) == pxcmStatus.PXCM_STATUS_NO_ERROR)
         {
             /* Retrieve latest extremity data */
             if (hand_data.Update() == pxcmStatus.PXCM_STATUS_NO_ERROR)
             {
                 ;
             }
             {
                 TrackExtremity(hand_data);
                 if (hand_data.QueryHandData(PXCMHandData.AccessOrderType.ACCESS_ORDER_BY_TIME, 0, out handData) == pxcmStatus.PXCM_STATUS_NO_ERROR)
                 {
                     if (handData.QueryExtremityPoint(PXCMHandData.ExtremityType.EXTREMITY_LEFTMOST, out extremityPoint) == pxcmStatus.PXCM_STATUS_NO_ERROR)
                     {
                         Debug.Log("LeftMost Extremity Position = " + extremityPoint.pointWorld);
                     }
                 }
             }
             /* Now, release the current frame so we can process the next frame */
             sm.ReleaseFrame();
         }
     }
 }