@@ -664,9 +664,11 @@ public TrackerBase GetTrackerPose(string contains, bool canBeFromAmethyst = true
664664 var enumTrackerBases = trackerBases . ToList ( ) ;
665665 foreach ( var trackerBase in enumTrackerBases . ToList ( ) )
666666 if ( IsEmulationEnabled )
667- _00driverService ? . SetTrackerState ( trackerBase . ComTracker00 ( ) ) ;
667+ _00driverService ? . SetTrackerState ( trackerBase . ComTracker00 (
668+ Host . PluginSettings . GetSetting ( "StandableSupport" , false ) ) ) ;
668669 else
669- _driverService ? . SetTrackerState ( trackerBase . ComTracker ( ) ) ;
670+ _driverService ? . SetTrackerState ( trackerBase . ComTracker (
671+ Host . PluginSettings . GetSetting ( "StandableSupport" , false ) ) ) ;
670672
671673 return Task . FromResult ( wantReply ? enumTrackerBases . Select ( x => ( x , true ) ) : null ) ;
672674 }
@@ -691,9 +693,11 @@ public TrackerBase GetTrackerPose(string contains, bool canBeFromAmethyst = true
691693 var enumTrackerBases = trackerBases . ToList ( ) ;
692694 foreach ( var trackerBase in enumTrackerBases . ToList ( ) )
693695 if ( IsEmulationEnabled )
694- _00driverService ? . UpdateTracker ( trackerBase . ComTracker00 ( ) ) ;
696+ _00driverService ? . UpdateTracker ( trackerBase . ComTracker00 (
697+ Host . PluginSettings . GetSetting ( "StandableSupport" , false ) ) ) ;
695698 else
696- _driverService ? . UpdateTracker ( trackerBase . ComTracker ( ) ) ;
699+ _driverService ? . UpdateTracker ( trackerBase . ComTracker (
700+ Host . PluginSettings . GetSetting ( "StandableSupport" , false ) ) ) ;
697701
698702 return Task . FromResult ( wantReply ? enumTrackerBases . Select ( x => ( x , true ) ) : null ) ;
699703 }
@@ -1231,12 +1235,14 @@ public bool SetupNullDriver(bool enableDriver, bool enableViewport = false)
12311235
12321236public static class OvrExtensions
12331237{
1234- public static driver_Amethyst . dTrackerBase ComTracker ( this TrackerBase tracker )
1238+ public static driver_Amethyst . dTrackerBase ComTracker ( this TrackerBase tracker , bool allowInferred )
12351239 {
12361240 return new driver_Amethyst . dTrackerBase
12371241 {
12381242 ConnectionState = Convert . ToSByte ( tracker . ConnectionState ) ,
1239- TrackingState = Convert . ToSByte ( tracker . TrackingState == TrackedJointState . StateTracked ) ,
1243+ TrackingState = Convert . ToSByte ( allowInferred
1244+ ? tracker . TrackingState is not TrackedJointState . StateNotTracked
1245+ : tracker . TrackingState is TrackedJointState . StateTracked ) ,
12401246 Serial = tracker . Serial ,
12411247 Role = ( driver_Amethyst . dTrackerType ) tracker . Role ,
12421248 Position = tracker . Position . ComVector ( ) ,
@@ -1248,12 +1254,14 @@ public static driver_Amethyst.dTrackerBase ComTracker(this TrackerBase tracker)
12481254 } ;
12491255 }
12501256
1251- public static driver_00Amethyst . dTrackerBase ComTracker00 ( this TrackerBase tracker )
1257+ public static driver_00Amethyst . dTrackerBase ComTracker00 ( this TrackerBase tracker , bool allowInferred )
12521258 {
12531259 return new driver_00Amethyst . dTrackerBase
12541260 {
12551261 ConnectionState = Convert . ToSByte ( tracker . ConnectionState ) ,
1256- TrackingState = Convert . ToSByte ( tracker . TrackingState == TrackedJointState . StateTracked ) ,
1262+ TrackingState = Convert . ToSByte ( allowInferred
1263+ ? tracker . TrackingState is not TrackedJointState . StateNotTracked
1264+ : tracker . TrackingState is TrackedJointState . StateTracked ) ,
12571265 Serial = tracker . Serial ,
12581266 Role = ( driver_00Amethyst . dTrackerType ) tracker . Role ,
12591267 Position = tracker . Position . ComVector00 ( ) ,
0 commit comments