@@ -22,12 +22,12 @@ private struct DeviceFeature
2222 {
2323 private ulong featuresField ;
2424
25- public bool supportedTracking
25+ public bool supportTracking
2626 {
2727 get { return ( featuresField & ( ulong ) WVR_SupportedFeature . WVR_SupportedFeature_HandTracking ) > 0ul ; }
2828 }
2929
30- public bool supportedGesture
30+ public bool supportGesture
3131 {
3232 get { return ( featuresField & ( ulong ) WVR_SupportedFeature . WVR_SupportedFeature_HandGesture ) > 0ul ; }
3333 }
@@ -43,8 +43,7 @@ public void Fetch()
4343 private GestureActivator gestureActivator = GestureActivator . Default ;
4444 private uint leftDeviceIndex = VRModule . INVALID_DEVICE_INDEX ;
4545 private uint rightDeviceIndex = VRModule . INVALID_DEVICE_INDEX ;
46- private static WVR_HandTrackerType preferredTrackerType =
47- VRModuleSettings . enableWaveNaturalHand ? WVR_HandTrackerType . WVR_HandTrackerType_Natural : WVR_HandTrackerType . WVR_HandTrackerType_Electronic ;
46+ private static WVR_HandTrackerType preferredTrackerType = WVR_HandTrackerType . WVR_HandTrackerType_Natural ;
4847 private static WVR_HandModelType showElectronicHandWithController =
4948 VRModuleSettings . showWaveElectronicHandWithController ?
5049 WVR_HandModelType . WVR_HandModelType_WithController : WVR_HandModelType . WVR_HandModelType_WithoutController ;
@@ -58,12 +57,13 @@ protected override void OnActivated()
5857
5958 protected override void OnDeactivated ( )
6059 {
61- //GestureInterface.StopGestureDetection();
60+ trackingActivator . SetActive ( false ) ;
61+ gestureActivator . SetActive ( false ) ;
6262 }
6363
6464 protected override void OnUpdateDeviceConnectionAndPoses ( )
6565 {
66- trackingActivator . SetActive ( VRModuleSettings . activateWaveHandTrackingSubmodule ) ;
66+ trackingActivator . SetActive ( deviceFeature . supportTracking ) ;
6767
6868 if ( VRModule . trackingSpaceType == VRModuleTrackingSpaceType . RoomScale )
6969 {
@@ -144,7 +144,7 @@ protected override void OnUpdateDeviceConnectionAndPoses()
144144
145145 protected override void OnUpdateDeviceInput ( )
146146 {
147- gestureActivator . SetActive ( VRModuleSettings . enableWaveHandGesture ) ;
147+ gestureActivator . SetActive ( VRModuleSettings . enableWaveHandGesture && deviceFeature . supportGesture ) ;
148148
149149 gestureActivator . TryFetchData ( ) ;
150150
@@ -788,11 +788,13 @@ public void UpdateGestureInput(IVRModuleDeviceStateRW state, bool isLeft)
788788 state . SetButtonPress ( VRModuleRawButton . GestureIndexUp , gesture == WVR_HandGestureType . WVR_HandGestureType_IndexUp ) ;
789789 state . SetButtonPress ( VRModuleRawButton . GestureOk , gesture == WVR_HandGestureType . WVR_HandGestureType_OK ) ;
790790 state . SetButtonPress ( VRModuleRawButton . GestureThumbUp , gesture == WVR_HandGestureType . WVR_HandGestureType_ThumbUp ) ;
791+ state . SetButtonPress ( VRModuleRawButton . System , gesture == WVR_HandGestureType . WVR_HandGestureType_Inverse ) ;
791792 state . SetButtonTouch ( VRModuleRawButton . GestureFist , gesture == WVR_HandGestureType . WVR_HandGestureType_Fist ) ;
792793 state . SetButtonTouch ( VRModuleRawButton . GestureFive , gesture == WVR_HandGestureType . WVR_HandGestureType_Five ) ;
793794 state . SetButtonTouch ( VRModuleRawButton . GestureIndexUp , gesture == WVR_HandGestureType . WVR_HandGestureType_IndexUp ) ;
794795 state . SetButtonTouch ( VRModuleRawButton . GestureOk , gesture == WVR_HandGestureType . WVR_HandGestureType_OK ) ;
795796 state . SetButtonTouch ( VRModuleRawButton . GestureThumbUp , gesture == WVR_HandGestureType . WVR_HandGestureType_ThumbUp ) ;
797+ state . SetButtonTouch ( VRModuleRawButton . System , gesture == WVR_HandGestureType . WVR_HandGestureType_Inverse ) ;
796798 }
797799
798800 public bool isLeftValid { get { return gestureData . left != WVR_HandGestureType . WVR_HandGestureType_Invalid ; } }
0 commit comments