@@ -39,7 +39,7 @@ public void Fetch()
3939 }
4040
4141 private DeviceFeature deviceFeature ;
42- private TrackingActivator trackingActivator = TrackingActivator . Default ;
42+ private static TrackingActivator trackingActivator = TrackingActivator . Default ;
4343 private GestureActivator gestureActivator = GestureActivator . Default ;
4444 private uint leftDeviceIndex = VRModule . INVALID_DEVICE_INDEX ;
4545 private uint rightDeviceIndex = VRModule . INVALID_DEVICE_INDEX ;
@@ -186,6 +186,40 @@ protected override void OnUpdateDeviceInput()
186186
187187 public override uint GetRightHandedIndex ( ) { return rightDeviceIndex ; }
188188
189+ public static bool TryGetLeftPinchRay ( out Vector3 origin , out Vector3 direction )
190+ {
191+ if ( ! trackingActivator . isLeftValid )
192+ {
193+ origin = Vector3 . zero ;
194+ direction = Vector3 . zero ;
195+
196+ return false ;
197+ }
198+
199+ var pinch = trackingActivator . getLeftPinchData ;
200+ Coordinate . GetVectorFromGL ( pinch . pinch . origin , out origin ) ;
201+ Coordinate . GetVectorFromGL ( pinch . pinch . direction , out direction ) ;
202+
203+ return true ;
204+ }
205+
206+ public static bool TryGetRightPinchRay ( out Vector3 origin , out Vector3 direction )
207+ {
208+ if ( ! trackingActivator . isRightValid )
209+ {
210+ origin = Vector3 . zero ;
211+ direction = Vector3 . zero ;
212+
213+ return false ;
214+ }
215+
216+ var pinch = trackingActivator . getRightPinchData ;
217+ Coordinate . GetVectorFromGL ( pinch . pinch . origin , out origin ) ;
218+ Coordinate . GetVectorFromGL ( pinch . pinch . direction , out direction ) ;
219+
220+ return true ;
221+ }
222+
189223 private enum FeatureActivity
190224 {
191225 Stopped ,
@@ -462,6 +496,10 @@ public bool TryFetchData(WVR_PoseOriginModel originModel)
462496
463497 public bool isRightValid { get { return trackingData . right . isValidPose ; } }
464498
499+ public WVR_HandPoseState_t getLeftPinchData { get { return pinchData . left ; } }
500+
501+ public WVR_HandPoseState_t getRightPinchData { get { return pinchData . right ; } }
502+
465503 public void UpdateJoints ( IVRModuleDeviceStateRW state , bool isLeft )
466504 {
467505 var data = isLeft ? trackingData . left : trackingData . right ;
@@ -482,7 +520,7 @@ public void UpdateJoints(IVRModuleDeviceStateRW state, bool isLeft)
482520 public void UpdateDeviceInput ( IVRModuleDeviceStateRW state , bool isLeft )
483521 {
484522 var pinch = isLeft ? pinchData . left : pinchData . right ;
485- var pinched = pinch . pinch . strength >= 0.95f ;
523+ var pinched = pinch . pinch . strength >= 0.5f ;
486524
487525 state . SetButtonPress ( VRModuleRawButton . GestureIndexPinch , pinched ) ;
488526 state . SetButtonTouch ( VRModuleRawButton . GestureIndexPinch , pinched ) ;
0 commit comments