@@ -50,7 +50,11 @@ public class MixedRealityInputManager : MixedRealityEventManager, IMixedRealityI
5050 private int disabledRefCount ;
5151
5252 private SourceStateEventData sourceStateEventData ;
53- private SourcePoseEventData sourcePoseEventData ;
53+ private SourcePoseEventData < TrackingState > sourceTrackingEventData ;
54+ private SourcePoseEventData < Vector2 > sourceVector2EventData ;
55+ private SourcePoseEventData < Vector3 > sourcePositionEventData ;
56+ private SourcePoseEventData < Quaternion > sourceRotationEventData ;
57+ private SourcePoseEventData < MixedRealityPose > sourcePoseEventData ;
5458
5559 private FocusEventData focusEventData ;
5660
@@ -184,7 +188,12 @@ private void InitializeInternal()
184188 }
185189
186190 sourceStateEventData = new SourceStateEventData ( EventSystem . current ) ;
187- sourcePoseEventData = new SourcePoseEventData ( EventSystem . current ) ;
191+
192+ sourceTrackingEventData = new SourcePoseEventData < TrackingState > ( EventSystem . current ) ;
193+ sourceVector2EventData = new SourcePoseEventData < Vector2 > ( EventSystem . current ) ;
194+ sourcePositionEventData = new SourcePoseEventData < Vector3 > ( EventSystem . current ) ;
195+ sourceRotationEventData = new SourcePoseEventData < Quaternion > ( EventSystem . current ) ;
196+ sourcePoseEventData = new SourcePoseEventData < MixedRealityPose > ( EventSystem . current ) ;
188197
189198 focusEventData = new FocusEventData ( EventSystem . current ) ;
190199
@@ -578,42 +587,70 @@ public void RaiseSourceLost(IMixedRealityInputSource source, IMixedRealityContro
578587 public void RaiseSourceTrackingStateChanged ( IMixedRealityInputSource source , IMixedRealityController controller , TrackingState state )
579588 {
580589 // Create input event
581- sourcePoseEventData . Initialize ( source , controller , state ) ;
590+ sourceTrackingEventData . Initialize ( source , controller , state ) ;
582591
583592 // Pass handler through HandleEvent to perform modal/fallback logic
584- HandleEvent ( sourcePoseEventData , OnSourcePoseChangedEventHandler ) ;
593+ HandleEvent ( sourceTrackingEventData , OnSourceTrackingChangedEventHandler ) ;
585594 }
586595
596+ private static readonly ExecuteEvents . EventFunction < IMixedRealitySourcePoseHandler > OnSourceTrackingChangedEventHandler =
597+ delegate ( IMixedRealitySourcePoseHandler handler , BaseEventData eventData )
598+ {
599+ var casted = ExecuteEvents . ValidateEventData < SourcePoseEventData < TrackingState > > ( eventData ) ;
600+ handler . OnSourcePoseChanged ( casted ) ;
601+ } ;
602+
587603 /// <inheritdoc />
588604 public void RaiseSourcePositionChanged ( IMixedRealityInputSource source , IMixedRealityController controller , Vector2 position )
589605 {
590606 // Create input event
591- sourcePoseEventData . Initialize ( source , controller , position ) ;
607+ sourceVector2EventData . Initialize ( source , controller , position ) ;
592608
593609 // Pass handler through HandleEvent to perform modal/fallback logic
594- HandleEvent ( sourcePoseEventData , OnSourcePoseChangedEventHandler ) ;
610+ HandleEvent ( sourceVector2EventData , OnSourcePoseVector2ChangedEventHandler ) ;
595611 }
596612
613+ private static readonly ExecuteEvents . EventFunction < IMixedRealitySourcePoseHandler > OnSourcePoseVector2ChangedEventHandler =
614+ delegate ( IMixedRealitySourcePoseHandler handler , BaseEventData eventData )
615+ {
616+ var casted = ExecuteEvents . ValidateEventData < SourcePoseEventData < Vector2 > > ( eventData ) ;
617+ handler . OnSourcePoseChanged ( casted ) ;
618+ } ;
619+
597620 /// <inheritdoc />
598621 public void RaiseSourcePositionChanged ( IMixedRealityInputSource source , IMixedRealityController controller , Vector3 position )
599622 {
600623 // Create input event
601- sourcePoseEventData . Initialize ( source , controller , position ) ;
624+ sourcePositionEventData . Initialize ( source , controller , position ) ;
602625
603626 // Pass handler through HandleEvent to perform modal/fallback logic
604- HandleEvent ( sourcePoseEventData , OnSourcePoseChangedEventHandler ) ;
627+ HandleEvent ( sourcePositionEventData , OnSourcePositionChangedEventHandler ) ;
605628 }
606629
630+ private static readonly ExecuteEvents . EventFunction < IMixedRealitySourcePoseHandler > OnSourcePositionChangedEventHandler =
631+ delegate ( IMixedRealitySourcePoseHandler handler , BaseEventData eventData )
632+ {
633+ var casted = ExecuteEvents . ValidateEventData < SourcePoseEventData < Vector3 > > ( eventData ) ;
634+ handler . OnSourcePoseChanged ( casted ) ;
635+ } ;
636+
607637 /// <inheritdoc />
608638 public void RaiseSourceRotationChanged ( IMixedRealityInputSource source , IMixedRealityController controller , Quaternion rotation )
609639 {
610640 // Create input event
611- sourcePoseEventData . Initialize ( source , controller , rotation ) ;
641+ sourceRotationEventData . Initialize ( source , controller , rotation ) ;
612642
613643 // Pass handler through HandleEvent to perform modal/fallback logic
614- HandleEvent ( sourcePoseEventData , OnSourcePoseChangedEventHandler ) ;
644+ HandleEvent ( sourceRotationEventData , OnSourceRotationChangedEventHandler ) ;
615645 }
616646
647+ private static readonly ExecuteEvents . EventFunction < IMixedRealitySourcePoseHandler > OnSourceRotationChangedEventHandler =
648+ delegate ( IMixedRealitySourcePoseHandler handler , BaseEventData eventData )
649+ {
650+ var casted = ExecuteEvents . ValidateEventData < SourcePoseEventData < Quaternion > > ( eventData ) ;
651+ handler . OnSourcePoseChanged ( casted ) ;
652+ } ;
653+
617654 /// <inheritdoc />
618655 public void RaiseSourcePoseChanged ( IMixedRealityInputSource source , IMixedRealityController controller , MixedRealityPose position )
619656 {
@@ -627,7 +664,7 @@ public void RaiseSourcePoseChanged(IMixedRealityInputSource source, IMixedRealit
627664 private static readonly ExecuteEvents . EventFunction < IMixedRealitySourcePoseHandler > OnSourcePoseChangedEventHandler =
628665 delegate ( IMixedRealitySourcePoseHandler handler , BaseEventData eventData )
629666 {
630- var casted = ExecuteEvents . ValidateEventData < SourcePoseEventData > ( eventData ) ;
667+ var casted = ExecuteEvents . ValidateEventData < SourcePoseEventData < MixedRealityPose > > ( eventData ) ;
631668 handler . OnSourcePoseChanged ( casted ) ;
632669 } ;
633670
0 commit comments