Skip to content

Commit 3004c9e

Browse files
authored
Remove ITrackedInteractor (#1044)
* Revert "[XRI3] Updating `ObjectManipulator` so to not rely on obsolete XRI controllers. (#822)" This reverts commit ab47631. * Remove unused method that was referring to XRController * Update MRTKRayInteractor.cs * Some docs updates Signed-off-by: Kurtis <[email protected]> * Update ObjectManipulator.cs * Update CHANGELOG.md Signed-off-by: Kurtis <[email protected]> --------- Signed-off-by: Kurtis <[email protected]>
1 parent 15d4803 commit 3004c9e

File tree

8 files changed

+62
-166
lines changed

8 files changed

+62
-166
lines changed

org.mixedrealitytoolkit.core/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
1313
* Updated the MRTK Default Profile to use the Unity XR Hands subsystem by default instead of the Microsoft OpenXR Plugin subsystem. [PR #973](https://github.com/MixedRealityToolkit/MixedRealityToolkit-Unity/pull/973)
1414
* Updated the minimum editor version to 2022.3.6f1 [PR #1003](https://github.com/MixedRealityToolkit/MixedRealityToolkit-Unity/pull/1003)
1515

16+
### Removed
17+
18+
* Removed ITrackedInteractor, as it was supporting an unused codepath and there are better ways to get this data (like querying the attach transform). [PR #1044](https://github.com/MixedRealityToolkit/MixedRealityToolkit-Unity/pull/1044)
19+
1620
## [4.0.0-development.pre.1] - 2024-07-09
1721

1822
### Added

org.mixedrealitytoolkit.core/Interactors/ITrackedInteractor.cs

Lines changed: 0 additions & 18 deletions
This file was deleted.

org.mixedrealitytoolkit.core/Interactors/ITrackedInteractor.cs.meta

Lines changed: 0 additions & 11 deletions
This file was deleted.

org.mixedrealitytoolkit.input/Interactors/GazePinch/GazePinchInteractor.cs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,17 @@ public class GazePinchInteractor :
2222
XRBaseInputInteractor,
2323
IGazePinchInteractor,
2424
IHandedInteractor,
25-
IModeManagedInteractor,
26-
ITrackedInteractor
25+
IModeManagedInteractor
2726
{
2827
#region GazePinchInteractor
2928

30-
[SerializeField, Tooltip("Holds a reference to the <see cref=\"TrackedPoseDriver\"/> associated to this interactor if it exists.")]
29+
[SerializeField, Tooltip("Holds a reference to the TrackedPoseDriver associated with this interactor, if it exists.")]
3130
private TrackedPoseDriver trackedPoseDriver = null;
3231

3332
/// <summary>
34-
/// Holds a reference to the <see cref="TrackedPoseDriver"/> associated to this interactor if it exists.
33+
/// Holds a reference to the <see cref="UnityEngine.InputSystem.XR.TrackedPoseDriver"/> associated with this interactor, if it exists.
3534
/// </summary>
36-
protected internal TrackedPoseDriver TrackedPoseDriver => trackedPoseDriver;
35+
internal TrackedPoseDriver TrackedPoseDriver => trackedPoseDriver;
3736

3837
[SerializeField]
3938
[Tooltip("The root management GameObject that interactor belongs to.")]
@@ -562,11 +561,6 @@ protected override void OnSelectExited(SelectExitEventArgs args)
562561

563562
#endregion XRBaseInteractor
564563

565-
#region ITrackedInteractor
566-
/// <inheritdoc />
567-
public GameObject TrackedParent => trackedPoseDriver == null ? null : trackedPoseDriver.gameObject;
568-
#endregion ITrackedInteractor
569-
570564
#region IModeManagedInteractor
571565
/// <inheritdoc/>
572566
[Obsolete("This function is obsolete and will be removed in the next major release. Use ModeManagedRoot instead.")]

org.mixedrealitytoolkit.input/Interactors/HandJointInteractor.cs

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,15 @@ namespace MixedReality.Toolkit.Input
1919
public abstract class HandJointInteractor :
2020
XRDirectInteractor,
2121
IHandedInteractor,
22-
IModeManagedInteractor,
23-
ITrackedInteractor
22+
IModeManagedInteractor
2423
{
2524
#region Serialized Fields
26-
[SerializeField, Tooltip("Holds a reference to the <see cref=\"TrackedPoseDriver\"/> associated to this interactor if it exists.")]
27-
private TrackedPoseDriver trackedPoseDriver = null;
2825

29-
/// <summary>
30-
/// Holds a reference to the <see cref="TrackedPoseDriver"/> associated to this interactor if it exists.
31-
/// </summary>
32-
protected internal TrackedPoseDriver TrackedPoseDriver => trackedPoseDriver;
26+
[SerializeField, Tooltip("Holds a reference to the TrackedPoseDriver associated with this interactor, if it exists.")]
27+
private TrackedPoseDriver trackedPoseDriver = null;
3328

3429
[SerializeField]
35-
[Tooltip("The root management GameObject that interactor belongs to. T")]
30+
[Tooltip("The root management GameObject that interactor belongs to.")]
3631
private GameObject modeManagedRoot = null;
3732

3833
/// <summary>
@@ -47,6 +42,7 @@ public GameObject ModeManagedRoot
4742
get => modeManagedRoot;
4843
set => modeManagedRoot = value;
4944
}
45+
5046
#endregion Serialized Fields
5147

5248
#region HandJointInteractor
@@ -60,11 +56,6 @@ public GameObject ModeManagedRoot
6056

6157
#endregion HandJointInteractor
6258

63-
#region ITrackedInteractor
64-
/// <inheritdoc />
65-
public GameObject TrackedParent => trackedPoseDriver == null ? null : trackedPoseDriver.gameObject;
66-
#endregion ITrackedInteractor
67-
6859
#region IHandedInteractor
6960

7061
/// <inheritdoc/>
@@ -119,8 +110,8 @@ public override bool isHoverActive
119110
new ProfilerMarker("[MRTK] HandJointInteractor.ProcessInteractor");
120111

121112
/// <summary>
122-
/// Unity's <see href="https://docs.unity3d.com/Packages/[email protected]/api/UnityEngine.XR.Interaction.Toolkit.XRInteractionManager.html">XRInteractionManager</see>
123-
/// or containing <see href="https://docs.unity3d.com/Packages/[email protected]/api/UnityEngine.XR.Interaction.Toolkit.IXRInteractionGroup.html">IXRInteractionGroup</see>
113+
/// Unity's <see href="https://docs.unity3d.com/Packages/[email protected]/api/UnityEngine.XR.Interaction.Toolkit.XRInteractionManager.html">XRInteractionManager</see>
114+
/// or containing <see href="https://docs.unity3d.com/Packages/[email protected]/api/UnityEngine.XR.Interaction.Toolkit.IXRInteractionGroup.html">IXRInteractionGroup</see>
124115
/// calls this method to update the Interactor before interaction events occur. See Unity's documentation for more information.
125116
/// </summary>
126117
/// <param name="updatePhase">The update phase this is called during.</param>
@@ -146,18 +137,19 @@ public override void ProcessInteractor(XRInteractionUpdateOrder.UpdatePhase upda
146137
else
147138
{
148139
// If we don't have a joint pose, reset to whatever our parent `TrackedPoseDriver` pose is.
149-
transform.localPosition = Vector3.zero;
150-
transform.localRotation = Quaternion.identity;
140+
transform.SetLocalPositionAndRotation(Vector3.zero, Quaternion.identity);
151141
}
152142

153143
// Ensure that the attachTransform tightly follows the interactor's transform
154144
attachTransform.SetPositionAndRotation(transform.position, transform.rotation);
155145
}
156146
}
157147
}
148+
158149
#endregion XRBaseInputInteractor
159150

160151
#region IModeManagedInteractor
152+
161153
/// <inheritdoc/>
162154
[Obsolete("This function is obsolete and will be removed in the next major release. Use ModeManagedRoot instead.")]
163155
public GameObject GetModeManagedController()
@@ -173,16 +165,18 @@ public GameObject GetModeManagedController()
173165

174166
return ModeManagedRoot;
175167
}
168+
176169
#endregion IModeManagedInteractor
177170

178171
#region Unity Event Functions
172+
179173
/// <inheritdoc/>
180174
protected override void Start()
181175
{
182176
base.Start();
183177

184178
// Try to get the TrackedPoseDriver component from the parent if it hasn't been set yet
185-
if (trackedPoseDriver == null)
179+
if (trackedPoseDriver == null)
186180
{
187181
trackedPoseDriver = GetComponentInParent<TrackedPoseDriver>();
188182
}
@@ -193,6 +187,7 @@ protected override void Start()
193187
modeManagedRoot = trackedPoseDriver.gameObject;
194188
}
195189
}
190+
196191
#endregion Unity Event Functions
197192
}
198193
}

org.mixedrealitytoolkit.input/Interactors/Poke/PokeInteractor.cs

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,17 @@ public class PokeInteractor :
2222
XRBaseInputInteractor,
2323
IPokeInteractor,
2424
IHandedInteractor,
25-
IModeManagedInteractor,
26-
ITrackedInteractor
25+
IModeManagedInteractor
2726
{
2827
#region PokeInteractor
2928

30-
[SerializeField, Tooltip("Holds a reference to the <see cref=\"TrackedPoseDriver\"/> associated to this interactor if it exists.")]
29+
[SerializeField, Tooltip("Holds a reference to the TrackedPoseDriver associated with this interactor, if it exists.")]
3130
private TrackedPoseDriver trackedPoseDriver = null;
3231

3332
/// <summary>
34-
/// Holds a reference to the <see cref="TrackedPoseDriver"/> associated to this interactor if it exists.
33+
/// Holds a reference to the <see cref="UnityEngine.InputSystem.XR.TrackedPoseDriver"/> associated with this interactor, if it exists.
3534
/// </summary>
36-
protected internal TrackedPoseDriver TrackedPoseDriver => trackedPoseDriver;
35+
internal TrackedPoseDriver TrackedPoseDriver => trackedPoseDriver;
3736

3837
[SerializeField]
3938
[Tooltip("The root management GameObject that interactor belongs to.")]
@@ -213,16 +212,13 @@ public override bool isHoverActive
213212
return base.isHoverActive && (xrController.currentControllerState.inputTrackingState.HasPositionAndRotation() || pokePointTracked);
214213
}
215214
#pragma warning restore CS0618 // Type or member is obsolete
216-
else
215+
// If the interactor does not have a TrackedPoseDriver component then we cannot determine if it is hover active
216+
else if (trackedPoseDriver == null)
217217
{
218-
// If the interactor does not have a <see cref="TrackedPoseDriver"> component then we cannot determine if it is hover active
219-
if (TrackedPoseDriver == null)
220-
{
221-
return false;
222-
}
223-
224-
return base.isHoverActive && (TrackedPoseDriver.GetInputTrackingState().HasPositionAndRotation() || pokePointTracked);
218+
return false;
225219
}
220+
221+
return base.isHoverActive && (trackedPoseDriver.GetInputTrackingState().HasPositionAndRotation() || pokePointTracked);
226222
}
227223
}
228224

@@ -320,11 +316,6 @@ public override void ProcessInteractor(XRInteractionUpdateOrder.UpdatePhase upda
320316

321317
#endregion XRBaseInteractor
322318

323-
#region ITrackedInteractor
324-
/// <inheritdoc />
325-
public GameObject TrackedParent => trackedPoseDriver == null ? null : trackedPoseDriver.gameObject;
326-
#endregion ITrackedInteractor
327-
328319
#region IModeManagedInteractor
329320
/// <inheritdoc/>
330321
[Obsolete("This function is obsolete and will be removed in the next major release. Use ModeManagedRoot instead.")]

org.mixedrealitytoolkit.input/Interactors/Ray/MRTKRayInteractor.cs

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,17 @@ public class MRTKRayInteractor :
2929
IRayInteractor,
3030
IHandedInteractor,
3131
IVariableSelectInteractor,
32-
IModeManagedInteractor,
33-
ITrackedInteractor
32+
IModeManagedInteractor
3433
{
3534
#region MRTKRayInteractor
3635

37-
[SerializeField, Tooltip("Holds a reference to the <see cref=\"TrackedPoseDriver\"/> associated to this interactor if it exists.")]
36+
[SerializeField, Tooltip("Holds a reference to the TrackedPoseDriver associated with this interactor, if it exists.")]
3837
private TrackedPoseDriver trackedPoseDriver = null;
3938

4039
/// <summary>
41-
/// Holds a reference to the <see cref="TrackedPoseDriver"/> associated to this interactor if it exists.
40+
/// Holds a reference to the <see cref="UnityEngine.InputSystem.XR.TrackedPoseDriver"/> associated with this interactor, if it exists.
4241
/// </summary>
43-
protected internal TrackedPoseDriver TrackedPoseDriver => trackedPoseDriver;
42+
internal TrackedPoseDriver TrackedPoseDriver => trackedPoseDriver;
4443

4544
[SerializeField]
4645
[Tooltip("The root management GameObject that interactor belongs to.")]
@@ -105,16 +104,13 @@ private bool IsTracked
105104
return xrController.currentControllerState.inputTrackingState.HasPositionAndRotation();
106105
}
107106
#pragma warning restore CS0618
108-
else
107+
else if (trackedPoseDriver == null) // If the interactor does not have a TrackedPoseDriver component then it is not tracked
109108
{
110-
if (TrackedPoseDriver == null) // If the interactor does not have a TrackedPoseDriver component then it is not tracked
111-
{
112-
return false;
113-
}
114-
115-
// If this interactor has a TrackedPoseDriver then use it to check if this interactor is tracked
116-
return TrackedPoseDriver.GetInputTrackingState().HasPositionAndRotation();
109+
return false;
117110
}
111+
112+
// If this interactor has a TrackedPoseDriver then use it to check if this interactor is tracked
113+
return trackedPoseDriver.GetInputTrackingState().HasPositionAndRotation();
118114
}
119115
}
120116

@@ -141,11 +137,6 @@ private bool IsTracked
141137

142138
#endregion MRTKRayInteractor
143139

144-
#region ITrackedInteractor
145-
/// <inheritdoc />
146-
public GameObject TrackedParent => trackedPoseDriver == null ? null : trackedPoseDriver.gameObject;
147-
#endregion ITrackedInteractor
148-
149140
#region IHandedInteractor
150141

151142
/// <inheritdoc />

0 commit comments

Comments
 (0)