temporarility change the way we calculate the wrist offset

This commit is contained in:
Mamadou Babaei
2024-06-11 21:56:24 +02:00
parent 2bfcc474b0
commit d8a1afebd7
@@ -1118,6 +1118,7 @@ bool FSGXRTracker::GetControllerOrientationAndPosition(const int32 ControllerInd
}
bool bTracked = false;
if (ControllerIndex == Pimpl->DeviceIndex)
{
FTransform ControllerTransform{FTransform::Identity};
@@ -1660,9 +1661,11 @@ bool FSGXRTracker::FImpl::GetWristTransform(
static const FName OpenXRName{TEXT("OpenXR")};
static const FName OpenXRHandTrackingName{TEXT("OpenXRHandTracking")};
const FName& MotionSource{GetMotionSourceName(DeviceHand)};
static constexpr int32 CurrentPlayerControllerIndex = 0;
const FName& OpenXRMotionSource{GetDefaultMotionSourceName(DeviceHand)};
const FName& OpenXRHandTrackingMotionSource{GetMotionSourceName(DeviceHand)};
const bool bFallbackToHandTrackingIfNoGloveDetected = ShouldFallbackToHandTrackingIfNoGloveDetected();
const TArray<IMotionController*> MotionControllers{IModularFeatures::Get().GetModularFeatureImplementations<
@@ -1675,12 +1678,27 @@ bool FSGXRTracker::FImpl::GetWristTransform(
continue;
}
const ETrackingStatus TrackingStatus = MotionController->GetControllerTrackingStatus(
CurrentPlayerControllerIndex, MotionSource);
if (TrackingStatus == ETrackingStatus::NotTracked)
const ETrackingStatus OpenXRMotionSourceTrackingStatus =
MotionController->GetControllerTrackingStatus(CurrentPlayerControllerIndex, OpenXRMotionSource);
if (bFallbackToHandTrackingIfNoGloveDetected)
{
const ETrackingStatus OpenXRHandTrackingMotionSourceTrackingStatus =
MotionController->GetControllerTrackingStatus(
CurrentPlayerControllerIndex, OpenXRHandTrackingMotionSource);
if (OpenXRMotionSourceTrackingStatus == ETrackingStatus::NotTracked
&& OpenXRHandTrackingMotionSourceTrackingStatus == ETrackingStatus::NotTracked)
{
continue;
}
}
else
{
if (OpenXRMotionSourceTrackingStatus == ETrackingStatus::NotTracked)
{
continue;
}
}
const FName DeviceTypeName{MotionController->GetMotionControllerDeviceTypeName()};
@@ -1694,15 +1712,18 @@ bool FSGXRTracker::FImpl::GetWristTransform(
if (DeviceTypeName == OpenXRHandTrackingName)
{
bOutMotionSourceHandTracking = true;
const bool bResult = GetOpenXRHandTrackingWristTransform(DeviceHand, OutTransform);
// const bool bResult = GetOpenXRHandTrackingWristTransform(DeviceHand, OutTransform);
const bool bResult = GetOpenXRWristTransform(
DeviceHand, MotionController, OpenXRHandTrackingMotionSource, OutTransform);
return bResult;
}
}
if (DeviceTypeName == OpenXRName)
{
bOutMotionSourceHandTracking = false;
const bool bResult = GetOpenXRWristTransform(DeviceHand, MotionController, MotionSource, OutTransform);
bOutMotionSourceHandTracking = true;
const bool bResult = GetOpenXRWristTransform(
DeviceHand, MotionController, OpenXRMotionSource, OutTransform);
return bResult;
}
}