refactor the way we populate and utilize motion sources for viveopenxr compatibility
This commit is contained in:
@@ -291,19 +291,15 @@ struct FSGXRTracker::FImpl
|
||||
return Name;
|
||||
}
|
||||
|
||||
FORCEINLINE static FName GetLeftPositionalTrackingHardwareMotionSourceName()
|
||||
FORCEINLINE static const FName& GetLeftPositionalTrackingHardwareMotionSourceName()
|
||||
{
|
||||
const FName Name{
|
||||
GetControllerHandEnumName(GetWristTrackingSettings().LeftHandMotionSource)
|
||||
};
|
||||
const FName& Name{GetWristTrackingSettings().LeftHandMotionSource};
|
||||
return Name;
|
||||
}
|
||||
|
||||
FORCEINLINE static FName GetRightPositionalTrackingHardwareMotionSourceName()
|
||||
FORCEINLINE static const FName& GetRightPositionalTrackingHardwareMotionSourceName()
|
||||
{
|
||||
const FName Name{
|
||||
GetControllerHandEnumName(GetWristTrackingSettings().RightHandMotionSource)
|
||||
};
|
||||
const FName& Name{GetWristTrackingSettings().RightHandMotionSource};
|
||||
return Name;
|
||||
}
|
||||
|
||||
@@ -2028,12 +2024,9 @@ void FSGXRTracker::FImpl::BuildMotionSourceToKeypointMap()
|
||||
}
|
||||
|
||||
const FSGWristTrackingSettings& WristTrackingSettings{GetWristTrackingSettings()};
|
||||
const FName LeftHandSGMotionSourceName{
|
||||
GetControllerHandEnumName(WristTrackingSettings.LeftHandMotionSource)
|
||||
};
|
||||
const FName RightHandSGMotionSourceName{
|
||||
GetControllerHandEnumName(WristTrackingSettings.RightHandMotionSource)
|
||||
};
|
||||
const FName& LeftHandSGMotionSourceName{WristTrackingSettings.LeftHandMotionSource};
|
||||
const FName& RightHandSGMotionSourceName{WristTrackingSettings.RightHandMotionSource};
|
||||
|
||||
MotionSourceToKeypointMap.Add(
|
||||
LeftHandSGMotionSourceName, FSGMotionSourceInfo(EHandKeypoint::Wrist, true));
|
||||
MotionSourceToKeypointMap.Add(
|
||||
@@ -2122,12 +2115,10 @@ bool FSGXRTracker::FImpl::GetControllerTransform(
|
||||
static const FName OpenXRViveTrackerName{TEXT("OpenXRViveTracker")};
|
||||
|
||||
const FSGWristTrackingSettings& WristTrackingSettings{GetWristTrackingSettings()};
|
||||
const EControllerHand PositionalTrackingHardwareHand =
|
||||
const FName& PositionalTrackingHardwareMotionSource{
|
||||
bRight
|
||||
? WristTrackingSettings.RightHandMotionSource
|
||||
: WristTrackingSettings.LeftHandMotionSource;
|
||||
const FName& PositionalTrackingHardwareMotionSource{
|
||||
GetControllerHandEnumName(PositionalTrackingHardwareHand)
|
||||
: WristTrackingSettings.LeftHandMotionSource
|
||||
};
|
||||
|
||||
bool bTracked = false;
|
||||
@@ -2221,12 +2212,10 @@ bool FSGXRTracker::FImpl::GetControllerTransform(
|
||||
bool FSGXRTracker::FImpl::GetWristTransform(const bool bRight, FTransform& OutTransform) const
|
||||
{
|
||||
const FSGWristTrackingSettings& WristTrackingSettings{GetWristTrackingSettings()};
|
||||
const EControllerHand PositionalTrackingHardwareHand =
|
||||
const FName& MotionSource{
|
||||
bRight
|
||||
? WristTrackingSettings.RightHandMotionSource
|
||||
: WristTrackingSettings.LeftHandMotionSource;
|
||||
const FName& MotionSource{
|
||||
GetControllerHandEnumName(PositionalTrackingHardwareHand)
|
||||
: WristTrackingSettings.LeftHandMotionSource
|
||||
};
|
||||
|
||||
if (!ensureAlwaysMsgf(XRTrackingSystem, TEXT("Invalid XR tracking system!")))
|
||||
|
||||
Reference in New Issue
Block a user