11using Microsoft . Extensions . Logging ;
2+ using VRCFaceTracking ;
23using VRCFaceTracking . Core . Params . Data ;
4+ using VRCFaceTracking . Core . Types ;
35
46namespace ETVRTrackingModule . ExpressionStrategies ;
57
68public class V2Mapper : ImappingStategy
79{
10+ private string [ ] singleEyeParamNames =
11+ {
12+ "EyeX" ,
13+ "EyeY" ,
14+ "EyeLid"
15+ } ;
16+
817 private Dictionary < string , float > parameterValues = new ( )
918 {
1019 { "EyeX" , 0f } ,
20+ { "EyeY" , 0f } ,
21+ { "EyeLid" , 0f } ,
22+
1123 { "EyeLeftX" , 0f } ,
12- { "EyeRightX" , 0f } ,
1324 { "EyeLeftY" , 0f } ,
25+ { "EyeRightX" , 0f } ,
1426 { "EyeRightY" , 0f } ,
15- { "EyeLid" , 0f } ,
1627 { "EyeLidLeft" , 0f } ,
1728 { "EyeLidRight" , 0f } ,
1829 } ;
@@ -29,10 +40,29 @@ public void handleOSCMessage(OSCMessage message)
2940 if ( parameterValues . ContainsKey ( paramToMap ) )
3041 {
3142 parameterValues [ paramToMap ] = message . value ;
43+
44+ var singleEyeMode = singleEyeParamNames . Contains ( paramToMap ) ;
45+ UpdateVRCFTEyeData ( ref UnifiedTracking . Data . Eye , ref UnifiedTracking . Data . Shapes , singleEyeMode ) ;
3246 }
3347 }
3448
35- public void UpdateVRCFTEyeData ( ref UnifiedEyeData eyeData , ref UnifiedExpressionShape [ ] eyeShapes )
49+ public void UpdateVRCFTEyeData ( ref UnifiedEyeData eyeData , ref UnifiedExpressionShape [ ] eyeShapes , bool singleEyeMode = false )
50+ {
51+ handleEyeGaze ( ref eyeData , singleEyeMode ) ;
52+ }
53+
54+ private void handleEyeGaze ( ref UnifiedEyeData eyeData , bool singleEyeMode )
3655 {
56+ // todo, we can probably drop support but EyeX/EyeY but I'll leave it be for now
57+ if ( singleEyeMode )
58+ {
59+ var combinedGaze = new Vector2 ( parameterValues [ "EyeX" ] , parameterValues [ "EyeY" ] ) ;
60+ eyeData . Left . Gaze = combinedGaze ;
61+ eyeData . Right . Gaze = combinedGaze ;
62+ return ;
63+ }
64+
65+ eyeData . Left . Gaze = new Vector2 ( parameterValues [ "EyeLeftX" ] , parameterValues [ "EyeLeftY" ] ) ;
66+ eyeData . Right . Gaze = new Vector2 ( parameterValues [ "EyeRightX" ] , parameterValues [ "EyeRightY" ] ) ;
3767 }
3868}
0 commit comments