temporarility change the way we calculate the wrist offset
This commit is contained in:
@@ -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,11 +1678,26 @@ 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)
|
||||
{
|
||||
continue;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user