diff --git a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGBasicHandModelImpl.cpp b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGBasicHandModelImpl.cpp index cbac12af..423b989a 100644 --- a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGBasicHandModelImpl.cpp +++ b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGBasicHandModelImpl.cpp @@ -93,7 +93,7 @@ FSGBasicHandModelImpl FSGBasicHandModelImpl::Deserialize(const FString& Serializ const TArray>& FSGBasicHandModelImpl::GetBaseFingerLengths() { static const TArray> BaseFingerLengths{ - FSGArrayUtils::FromStdVector( + FSGArrayUtils::FromMillimeters( FSGBasicHandModelImpl::FBasicHandModelType::GetBaseFingerLengths()) }; return BaseFingerLengths; @@ -102,7 +102,7 @@ const TArray>& FSGBasicHandModelImpl::GetBaseFingerLengths() const TArray& FSGBasicHandModelImpl::GetBaseJointPositions() { static const TArray BaseJointPositions{ - FSGArrayUtils::FromStdVector( + FSGArrayUtils::FromMillimeters( FBasicHandModelType::GetBaseJointPositions()) }; return BaseJointPositions; @@ -137,11 +137,12 @@ FSGBasicHandModelImpl::FSGBasicHandModelImpl(bool bRightHanded, const TArray 22 ) */ { std::vector> LengthsVector{ - FSGArrayUtils::ToStdVector(Lengths) + FSGArrayUtils::ToMillimeters(Lengths) }; - std::vector StartPositionsVector{FSGArrayUtils::ToStdVector< - FVector, FSGVect3DImpl::FVect3DType, FSGVect3DImpl, &FSGVect3DImpl::ToVect3D>(StartPositions)}; + std::vector StartPositionsVector{ + FSGArrayUtils::ToMillimeters(StartPositions) + }; Pimpl->BasicHandModel = FSGBasicHandModelImpl::FBasicHandModelType(bRightHanded, MoveTemp(LengthsVector), MoveTemp(StartPositionsVector)); @@ -157,14 +158,16 @@ FSGBasicHandModelImpl::FSGBasicHandModelImpl(bool bRightHanded, const TArray 22 ) */ { std::vector> LengthsVector{ - FSGArrayUtils::ToStdVector(Lengths) + FSGArrayUtils::ToMillimeters(Lengths) }; - std::vector StartPositionsVector{FSGArrayUtils::ToStdVector< - FVector, FSGVect3DImpl::FVect3DType, FSGVect3DImpl, &FSGVect3DImpl::ToVect3D>(StartPositions)}; + std::vector StartPositionsVector{ + FSGArrayUtils::ToMillimeters(StartPositions) + }; - std::vector StartRotationsVector{FSGArrayUtils::ToStdVector< - FQuat, FSGQuatImpl::FQuatType, FSGQuatImpl, &FSGQuatImpl::ToQuat>(StartRotations)}; + std::vector StartRotationsVector{ + FSGArrayUtils::ToStdVector(StartRotations) + }; Pimpl->BasicHandModel = FSGBasicHandModelImpl::FBasicHandModelType(bRightHanded, MoveTemp(LengthsVector), MoveTemp(StartPositionsVector), @@ -280,7 +283,7 @@ TArray FSGBasicHandModelImpl::GetFingerRatios(const ESGFinger Finger) con TArray FSGBasicHandModelImpl::GetStartJointPositions() const { TArray StartJointPositions{ - FSGArrayUtils::FromStdVector( + FSGArrayUtils::FromMillimeters( Pimpl->BasicHandModel.GetStartJointPositions()) }; return MoveTemp(StartJointPositions); @@ -289,21 +292,23 @@ TArray FSGBasicHandModelImpl::GetStartJointPositions() const void FSGBasicHandModelImpl::SetStartJointPositions(const TArray& StartJointPositions) { std::vector StartJointPositionsVector{ - FSGArrayUtils::ToStdVector< - FVector, FSGVect3DImpl::FVect3DType, FSGVect3DImpl, &FSGVect3DImpl::ToVect3D>(StartJointPositions) + FSGArrayUtils::ToMillimeters(StartJointPositions) }; Pimpl->BasicHandModel.SetStartJointPositions(MoveTemp(StartJointPositionsVector)); } -void FSGBasicHandModelImpl::SetStartJointPosition(ESGFinger Finger, const FVector& Position) +void FSGBasicHandModelImpl::SetStartJointPosition(const ESGFinger Finger, const FVector& Position) { - Pimpl->BasicHandModel.SetStartJointPosition(FSGCoreEnumCast::ToEFinger(Finger), - FSGVect3DImpl(Position).ToVect3D()); + Pimpl->BasicHandModel.SetStartJointPosition( + FSGCoreEnumCast::ToEFinger(Finger), + FSGUnits::CentimetersToMillimeters(Position)); } void FSGBasicHandModelImpl::SetStartJointPosition(const uint8 Finger, const FVector& Position) { - Pimpl->BasicHandModel.SetStartJointPosition(Finger, FSGVect3DImpl(Position).ToVect3D()); + Pimpl->BasicHandModel.SetStartJointPosition( + Finger, + FSGUnits::CentimetersToMillimeters(Position)); } TArray FSGBasicHandModelImpl::GetStartJointRotations() const @@ -327,13 +332,15 @@ void FSGBasicHandModelImpl::SetStartJointRotations(const TArray& StartJoi FVector FSGBasicHandModelImpl::GetJointPosition(const ESGFinger Finger) const { - const FSGVect3DImpl Position(Pimpl->BasicHandModel.GetJointPosition(FSGCoreEnumCast::ToEFinger(Finger))); - return Position.ToFVector(); + return FSGUnits::MillimetersToCentimeters( + Pimpl->BasicHandModel.GetJointPosition(FSGCoreEnumCast::ToEFinger(Finger))); } void FSGBasicHandModelImpl::SetJointPosition(const FVector& NewPosition, const ESGFinger Finger) { - Pimpl->BasicHandModel.SetJointPosition(FSGVect3DImpl(NewPosition).ToVect3D(), FSGCoreEnumCast::ToEFinger(Finger)); + Pimpl->BasicHandModel.SetJointPosition( + FSGUnits::CentimetersToMillimeters(NewPosition), + FSGCoreEnumCast::ToEFinger(Finger)); } FQuat FSGBasicHandModelImpl::GetJointRotation(const ESGFinger Finger) const @@ -364,7 +371,7 @@ float FSGBasicHandModelImpl::GetTotalLength(const ESGFinger Finger) const TArray FSGBasicHandModelImpl::Get3DLengths(const ESGFinger Finger) const { const TArray Lengths{ - FSGArrayUtils::FromStdVector( + FSGArrayUtils::FromMillimeters( Pimpl->BasicHandModel.Get3DLengths(FSGCoreEnumCast::ToEFinger(Finger))) }; return Lengths; @@ -403,4 +410,4 @@ FSGBasicHandModelImpl::FImpl::~FImpl() = default; void FSGBasicHandModelImpl::FImplDeleter::operator()(const FImpl* P) const { delete P; -} \ No newline at end of file +} diff --git a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHandPoseImpl.cpp b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHandPoseImpl.cpp index 92a70750..c2e8491e 100644 --- a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHandPoseImpl.cpp +++ b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHandPoseImpl.cpp @@ -155,7 +155,7 @@ FSGHandPoseImpl::FSGHandPoseImpl() { } -FSGHandPoseImpl::FSGHandPoseImpl(bool bRightHanded, const TArray>& JointPositions, +FSGHandPoseImpl::FSGHandPoseImpl(const bool bRightHanded, const TArray>& JointPositions, const TArray>& JointRotations, const TArray>& HandAngles) : #if ENGINE_MAJOR_VERSION == 5 || ( ENGINE_MAJOR_VERSION == 4 && ENGINE_MINOR_VERSION > 22 ) @@ -165,8 +165,7 @@ FSGHandPoseImpl::FSGHandPoseImpl(bool bRightHanded, const TArray #endif /* ENGINE_MAJOR_VERSION == 5 || ( ENGINE_MAJOR_VERSION == 4 && ENGINE_MINOR_VERSION > 22 ) */ { std::vector> JointPositionsVector{ - FSGArrayUtils::ToStdVector( - JointPositions) + FSGArrayUtils::ToMillimeters(JointPositions) }; std::vector> JointRotationsVector{ @@ -236,7 +235,7 @@ void FSGHandPoseImpl::SetIsRight(const bool bRightHanded) const TArray> FSGHandPoseImpl::GetJointPositions() const { TArray> JointPositions{ - FSGArrayUtils::FromStdVector( + FSGArrayUtils::FromMillimeters( Pimpl->HandPose.GetJointPositions()) }; return MoveTemp(JointPositions); @@ -245,7 +244,7 @@ TArray> FSGHandPoseImpl::GetJointPositions() const void FSGHandPoseImpl::SetJointPositions(const TArray>& JointPositions) const { std::vector> JointPositionsVector{ - FSGArrayUtils::ToStdVector( + FSGArrayUtils::ToMillimeters( JointPositions) }; Pimpl->HandPose.SetJointPositions(MoveTemp(JointPositionsVector)); diff --git a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHapticGloveImpl.cpp b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHapticGloveImpl.cpp index 806320cb..00cd9cb3 100644 --- a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHapticGloveImpl.cpp +++ b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGHapticGloveImpl.cpp @@ -357,12 +357,14 @@ void FSGHapticGloveImpl::GetWristLocation(const FVector& ReferencePosition, cons FSGVect3DImpl::FVect3DType WristPosition; FSGQuatImpl::FQuatType WristRotation; - ToHapticGlovePtrChecked()->GetWristLocation(FSGVect3DImpl(ReferencePosition).ToVect3D(), - FSGQuatImpl(ReferenceRotation).ToQuat(), - FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), - WristPosition, WristRotation); + ToHapticGlovePtrChecked()->GetWristLocation( + FSGUnits::CentimetersToMillimeters(ReferencePosition), + FSGQuatImpl(ReferenceRotation).ToQuat(), + FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), + WristPosition, WristRotation); - OutWristPosition = FSGVect3DImpl(MoveTemp(WristPosition)).ToFVector(); + OutWristPosition = FSGUnits::MillimetersToCentimeters( + MoveTemp(WristPosition)); OutWristRotation = FSGQuatImpl(MoveTemp(WristRotation)).ToFQuat(); } @@ -373,12 +375,14 @@ void FSGHapticGloveImpl::GetGloveLocation(const FVector& ReferencePosition, cons FSGVect3DImpl::FVect3DType GlovePosition; FSGQuatImpl::FQuatType GloveRotation; - ToHapticGlovePtrChecked()->GetGloveLocation(FSGVect3DImpl(ReferencePosition).ToVect3D(), - FSGQuatImpl(ReferenceRotation).ToQuat(), - FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), - GlovePosition, GloveRotation); + ToHapticGlovePtrChecked()->GetGloveLocation( + FSGUnits::CentimetersToMillimeters(ReferencePosition), + FSGQuatImpl(ReferenceRotation).ToQuat(), + FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), + GlovePosition, GloveRotation); - OutGlovePosition = FSGVect3DImpl(MoveTemp(GlovePosition)).ToFVector(); + OutGlovePosition = FSGUnits::MillimetersToCentimeters( + MoveTemp(GlovePosition)); OutGloveRotation = FSGQuatImpl(MoveTemp(GloveRotation)).ToFQuat(); } diff --git a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGJointKinematicsImpl.cpp b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGJointKinematicsImpl.cpp index acf379de..a2b677fa 100644 --- a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGJointKinematicsImpl.cpp +++ b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGJointKinematicsImpl.cpp @@ -48,14 +48,18 @@ bool FSGJointKinematicsImpl::ForwardKinematics(const FVector& StartPosition, con const TArray& JointLengths, const TArray& JointAngles, TArray& OutNewPositions, TArray& OutNewRotations) { - FSGVect3DImpl::FVect3DType StartPositionVect3D(FSGVect3DImpl(StartPosition).ToVect3D()); + FSGVect3DImpl::FVect3DType StartPositionVect3D( + FSGUnits::CentimetersToMillimeters(StartPosition)); FSGQuatImpl::FQuatType StartRotationQuat(FSGQuatImpl(StartRotation).ToQuat()); - std::vector JointLengthsVector{FSGArrayUtils::ToStdVector< - FVector, FSGVect3DImpl::FVect3DType, FSGVect3DImpl, &FSGVect3DImpl::ToVect3D>(JointLengths)}; + std::vector JointLengthsVector{ + FSGArrayUtils::ToMillimeters(JointLengths) + }; - std::vector JointAnglesVector{FSGArrayUtils::ToStdVector< - FVector, FSGVect3DImpl::FVect3DType, FSGVect3DImpl, &FSGVect3DImpl::ToVect3D>(JointAngles)}; + std::vector JointAnglesVector{ + FSGArrayUtils::ToStdVector( + JointAngles) + }; std::vector NewPositions; std::vector NewRotations; @@ -65,20 +69,21 @@ bool FSGJointKinematicsImpl::ForwardKinematics(const FVector& StartPosition, con MoveTemp(JointLengthsVector), MoveTemp(JointAnglesVector), NewPositions, NewRotations); - OutNewPositions = FSGArrayUtils::FromStdVector(NewPositions);; + OutNewPositions = FSGArrayUtils::FromMillimeters(NewPositions);; OutNewRotations = FSGArrayUtils::FromStdVector(NewRotations);; return bResults; } -bool FSGJointKinematicsImpl::ForwardKinematics(const FSGBasicHandModelImpl& Profile, ESGFinger Finger, +bool FSGJointKinematicsImpl::ForwardKinematics(const FSGBasicHandModelImpl& Profile, const ESGFinger Finger, const TArray& JointAngles, TArray& OutNewPositions, TArray& OutNewRotations) { - std::vector JointAnglesVector(FSGArrayUtils::ToStdVector< - FVector, FSGVect3DImpl::FVect3DType, FSGVect3DImpl, &FSGVect3DImpl::ToVect3D>(JointAngles)); + std::vector JointAnglesVector{ + FSGArrayUtils::ToStdVector( + JointAngles) + }; std::vector NewPositions; std::vector NewRotations; @@ -87,8 +92,7 @@ bool FSGJointKinematicsImpl::ForwardKinematics(const FSGBasicHandModelImpl& Prof Profile.ToBasicHandModel(), FSGCoreEnumCast::ToEFinger(Finger), MoveTemp(JointAnglesVector), NewPositions, NewRotations); - OutNewPositions = FSGArrayUtils::FromStdVector(NewPositions);; + OutNewPositions = FSGArrayUtils::FromMillimeters(NewPositions);; OutNewRotations = FSGArrayUtils::FromStdVector(NewRotations);; diff --git a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNovaGloveImpl.cpp b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNovaGloveImpl.cpp index be2f9116..df5e5865 100644 --- a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNovaGloveImpl.cpp +++ b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGNovaGloveImpl.cpp @@ -185,12 +185,16 @@ void FSGNovaGloveImpl::CalculateGloveLocation(const FVector& ReferencePosition, { FSGVect3DImpl::FVect3DType GlovePosition; FSGQuatImpl::FQuatType GloveRotation; - FNovaGloveType::CalculateGloveLocation(FSGVect3DImpl{ReferencePosition}.ToVect3D(), - FSGQuatImpl{ReferenceRotation}.ToQuat(), - FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), - bRightHanded, - GlovePosition, GloveRotation); - OutGlovePosition = FSGVect3DImpl{MoveTemp(GlovePosition)}.ToFVector(); + + FNovaGloveType::CalculateGloveLocation( + FSGUnits::CentimetersToMillimeters(ReferencePosition), + FSGQuatImpl{ReferenceRotation}.ToQuat(), + FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), + bRightHanded, + GlovePosition, GloveRotation); + + OutGlovePosition = FSGUnits::MillimetersToCentimeters( + MoveTemp(GlovePosition)); OutGloveRotation = FSGQuatImpl{MoveTemp(GloveRotation)}.ToFQuat(); } @@ -201,12 +205,16 @@ void FSGNovaGloveImpl::CalculateWristLocation(const FVector& ReferencePosition, { FSGVect3DImpl::FVect3DType WristPosition; FSGQuatImpl::FQuatType WristRotation; - FNovaGloveType::CalculateWristLocation(FSGVect3DImpl{ReferencePosition}.ToVect3D(), - FSGQuatImpl{ReferenceRotation}.ToQuat(), - FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), - bRightHanded, - WristPosition, WristRotation); - OutWristPosition = FSGVect3DImpl{MoveTemp(WristPosition)}.ToFVector(); + + FNovaGloveType::CalculateWristLocation( + FSGUnits::CentimetersToMillimeters(ReferencePosition), + FSGQuatImpl{ReferenceRotation}.ToQuat(), + FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), + bRightHanded, + WristPosition, WristRotation); + + OutWristPosition = FSGUnits::MillimetersToCentimeters( + MoveTemp(WristPosition)); OutWristRotation = FSGQuatImpl{MoveTemp(WristRotation)}.ToFQuat(); } @@ -447,11 +455,15 @@ void FSGNovaGloveImpl::GetGloveLocation(const FVector& ReferencePosition, const { FSGVect3DImpl::FVect3DType GlovePosition; FSGQuatImpl::FQuatType GloveRotation; - ToNovaGlovePtrChecked()->GetGloveLocation(FSGVect3DImpl{ReferencePosition}.ToVect3D(), - FSGQuatImpl{ReferenceRotation}.ToQuat(), - FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), - GlovePosition, GloveRotation); - OutGlovePosition = FSGVect3DImpl{MoveTemp(GlovePosition)}.ToFVector(); + + ToNovaGlovePtrChecked()->GetGloveLocation( + FSGUnits::CentimetersToMillimeters(ReferencePosition), + FSGQuatImpl{ReferenceRotation}.ToQuat(), + FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), + GlovePosition, GloveRotation); + + OutGlovePosition = FSGUnits::MillimetersToCentimeters( + MoveTemp(GlovePosition)); OutGloveRotation = FSGQuatImpl{MoveTemp(GloveRotation)}.ToFQuat(); } @@ -461,11 +473,15 @@ void FSGNovaGloveImpl::GetWristLocation(const FVector& ReferencePosition, const { FSGVect3DImpl::FVect3DType WristPosition; FSGQuatImpl::FQuatType WristRotation; - ToNovaGlovePtrChecked()->GetWristLocation(FSGVect3DImpl{ReferencePosition}.ToVect3D(), - FSGQuatImpl{ReferenceRotation}.ToQuat(), - FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), - WristPosition, WristRotation); - OutWristPosition = FSGVect3DImpl{MoveTemp(WristPosition)}.ToFVector(); + + ToNovaGlovePtrChecked()->GetWristLocation( + FSGUnits::CentimetersToMillimeters(ReferencePosition), + FSGQuatImpl{ReferenceRotation}.ToQuat(), + FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), + WristPosition, WristRotation); + + OutWristPosition = FSGUnits::MillimetersToCentimeters( + MoveTemp(WristPosition)); OutWristRotation = FSGQuatImpl{MoveTemp(WristRotation)}.ToFQuat(); } diff --git a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveHandProfileImpl.cpp b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveHandProfileImpl.cpp index f712404b..bdd9a5a6 100644 --- a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveHandProfileImpl.cpp +++ b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveHandProfileImpl.cpp @@ -121,8 +121,7 @@ FSGSenseGloveHandProfileImpl::FSGSenseGloveHandProfileImpl(const bool bRightHand #endif /* ENGINE_MAJOR_VERSION == 5 || ( ENGINE_MAJOR_VERSION == 4 && ENGINE_MINOR_VERSION > 22 ) */ { std::vector FingerThimbleOffsetVector{ - FSGArrayUtils::ToStdVector( - FingerThimbleOffset) + FSGArrayUtils::ToMillimeters(FingerThimbleOffset) }; Pimpl->SenseGloveHandProfile = FSenseGloveHandProfileType( bRightHanded, Interpolator.ToHandInterpolator(), @@ -218,7 +217,7 @@ void FSGSenseGloveHandProfileImpl::SetFingerSolver(const ESGFingerSolver FingerS TArray FSGSenseGloveHandProfileImpl::GetFingerThimbleOffset() const { const TArray FingerThimbleOffset{ - FSGArrayUtils::FromStdVector( + FSGArrayUtils::FromMillimeters( Pimpl->SenseGloveHandProfile.GetFingerThimbleOffset()) }; return FingerThimbleOffset; @@ -227,8 +226,7 @@ TArray FSGSenseGloveHandProfileImpl::GetFingerThimbleOffset() const void FSGSenseGloveHandProfileImpl::SetFingerThimbleOffset(const TArray& FingerThimbleOffset) { std::vector FingerThimbleOffsetVector{ - FSGArrayUtils::ToStdVector( - FingerThimbleOffset) + FSGArrayUtils::ToMillimeters(FingerThimbleOffset) }; Pimpl->SenseGloveHandProfile.SetFingerThimbleOffset(MoveTemp(FingerThimbleOffsetVector)); } diff --git a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveImpl.cpp b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveImpl.cpp index 3ed7ad1d..a7d3d275 100644 --- a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveImpl.cpp +++ b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveImpl.cpp @@ -210,12 +210,16 @@ void FSGSenseGloveImpl::CalculateGloveLocation(const FVector& ReferencePosition, { FSGVect3DImpl::FVect3DType GlovePosition; FSGQuatImpl::FQuatType GloveRotation; - FSenseGloveType::CalculateGloveLocation(FSGVect3DImpl{ReferencePosition}.ToVect3D(), - FSGQuatImpl{ReferenceRotation}.ToQuat(), - FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), - bRightHanded, FSGCoreEnumCast::ToEFinger(MountedOn), - GlovePosition, GloveRotation); - OutGlovePosition = FSGVect3DImpl{MoveTemp(GlovePosition)}.ToFVector(); + + FSenseGloveType::CalculateGloveLocation( + FSGUnits::CentimetersToMillimeters(ReferencePosition), + FSGQuatImpl{ReferenceRotation}.ToQuat(), + FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), + bRightHanded, FSGCoreEnumCast::ToEFinger(MountedOn), + GlovePosition, GloveRotation); + + OutGlovePosition = FSGUnits::MillimetersToCentimeters( + MoveTemp(GlovePosition));; OutGloveRotation = FSGQuatImpl{MoveTemp(GloveRotation)}.ToFQuat(); } @@ -228,14 +232,18 @@ void FSGSenseGloveImpl::CalculateWristLocation(const FVector& ReferencePosition, { FSGVect3DImpl::FVect3DType WristPosition; FSGQuatImpl::FQuatType WristRotation; - FSenseGloveType::CalculateWristLocation(FSGVect3DImpl{ReferencePosition}.ToVect3D(), - FSGQuatImpl{ReferenceRotation}.ToQuat(), - FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), - bRightHanded, FSGCoreEnumCast::ToEFinger(MountedOn), - FSGVect3DImpl(GloveWristPositionOffset).ToVect3D(), - FSGQuatImpl(GloveWristRotationOffset).ToQuat(), - WristPosition, WristRotation); - OutWristPosition = FSGVect3DImpl{MoveTemp(WristPosition)}.ToFVector(); + + FSenseGloveType::CalculateWristLocation( + FSGUnits::CentimetersToMillimeters(ReferencePosition), + FSGQuatImpl{ReferenceRotation}.ToQuat(), + FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), + bRightHanded, FSGCoreEnumCast::ToEFinger(MountedOn), + FSGUnits::CentimetersToMillimeters(GloveWristPositionOffset), + FSGQuatImpl(GloveWristRotationOffset).ToQuat(), + WristPosition, WristRotation); + + OutWristPosition = FSGUnits::MillimetersToCentimeters( + MoveTemp(WristPosition)); OutWristRotation = FSGQuatImpl{MoveTemp(WristRotation)}.ToFQuat(); } @@ -470,11 +478,15 @@ void FSGSenseGloveImpl::GetGloveLocation(const FVector& ReferencePosition, const { FSGVect3DImpl::FVect3DType GlovePosition; FSGQuatImpl::FQuatType GloveRotation; - ToSenseGlovePtrChecked()->GetGloveLocation(FSGVect3DImpl{ReferencePosition}.ToVect3D(), - FSGQuatImpl{ReferenceRotation}.ToQuat(), - FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), - GlovePosition, GloveRotation); - OutGlovePosition = FSGVect3DImpl{MoveTemp(GlovePosition)}.ToFVector(); + + ToSenseGlovePtrChecked()->GetGloveLocation( + FSGUnits::CentimetersToMillimeters(ReferencePosition), + FSGQuatImpl{ReferenceRotation}.ToQuat(), + FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), + GlovePosition, GloveRotation); + + OutGlovePosition = FSGUnits::MillimetersToCentimeters( + MoveTemp(GlovePosition)); OutGloveRotation = FSGQuatImpl{MoveTemp(GloveRotation)}.ToFQuat(); } @@ -485,12 +497,16 @@ void FSGSenseGloveImpl::GetGloveLocation(const FVector& ReferencePosition, const { FSGVect3DImpl::FVect3DType GlovePosition; FSGQuatImpl::FQuatType GloveRotation; - ToSenseGlovePtrChecked()->GetGloveLocation(FSGVect3DImpl{ReferencePosition}.ToVect3D(), - FSGQuatImpl{ReferenceRotation}.ToQuat(), - FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), - FSGCoreEnumCast::ToEFinger(MountedOn), - GlovePosition, GloveRotation); - OutGlovePosition = FSGVect3DImpl{MoveTemp(GlovePosition)}.ToFVector(); + + ToSenseGlovePtrChecked()->GetGloveLocation( + FSGUnits::CentimetersToMillimeters(ReferencePosition), + FSGQuatImpl{ReferenceRotation}.ToQuat(), + FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), + FSGCoreEnumCast::ToEFinger(MountedOn), + GlovePosition, GloveRotation); + + OutGlovePosition = FSGUnits::MillimetersToCentimeters( + MoveTemp(GlovePosition)); OutGloveRotation = FSGQuatImpl{MoveTemp(GloveRotation)}.ToFQuat(); } @@ -500,11 +516,15 @@ void FSGSenseGloveImpl::GetWristLocation(const FVector& ReferencePosition, const { FSGVect3DImpl::FVect3DType WristPosition; FSGQuatImpl::FQuatType WristRotation; - ToSenseGlovePtrChecked()->GetWristLocation(FSGVect3DImpl{ReferencePosition}.ToVect3D(), - FSGQuatImpl{ReferenceRotation}.ToQuat(), - FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), - WristPosition, WristRotation); - OutWristPosition = FSGVect3DImpl{MoveTemp(WristPosition)}.ToFVector(); + + ToSenseGlovePtrChecked()->GetWristLocation( + FSGUnits::CentimetersToMillimeters(ReferencePosition), + FSGQuatImpl{ReferenceRotation}.ToQuat(), + FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), + WristPosition, WristRotation); + + OutWristPosition = FSGUnits::MillimetersToCentimeters( + MoveTemp(WristPosition)); OutWristRotation = FSGQuatImpl{MoveTemp(WristRotation)}.ToFQuat(); } @@ -515,13 +535,17 @@ void FSGSenseGloveImpl::GetWristLocation(const FVector& ReferencePosition, const { FSGVect3DImpl::FVect3DType WristPosition; FSGQuatImpl::FQuatType WristRotation; - ToSenseGlovePtrChecked()->GetWristLocation(FSGVect3DImpl{ReferencePosition}.ToVect3D(), - FSGQuatImpl{ReferenceRotation}.ToQuat(), - FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), - FSGVect3DImpl(GloveWristPositionOffset).ToVect3D(), - FSGQuatImpl(GloveWristRotationOffset).ToQuat(), - WristPosition, WristRotation); - OutWristPosition = FSGVect3DImpl{MoveTemp(WristPosition)}.ToFVector(); + + ToSenseGlovePtrChecked()->GetWristLocation( + FSGUnits::CentimetersToMillimeters(ReferencePosition), + FSGQuatImpl{ReferenceRotation}.ToQuat(), + FSGCoreEnumCast::ToEPositionalTrackingHardware(TrackingHardware), + FSGUnits::CentimetersToMillimeters(GloveWristPositionOffset), + FSGQuatImpl(GloveWristRotationOffset).ToQuat(), + WristPosition, WristRotation); + + OutWristPosition = FSGUnits::MillimetersToCentimeters( + MoveTemp(WristPosition)); OutWristRotation = FSGQuatImpl{MoveTemp(WristRotation)}.ToFQuat(); } diff --git a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveInfoImpl.cpp b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveInfoImpl.cpp index 287a91ab..b0d29a63 100644 --- a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveInfoImpl.cpp +++ b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveInfoImpl.cpp @@ -127,15 +127,16 @@ FSGSenseGloveInfoImpl::FSGSenseGloveInfoImpl(const FString& DeviceId, std::string HardwareVersionString(TCHAR_TO_UTF8(*HardwareVersion)); FSGQuatImpl::FQuatType ImuCorrectionQuat(FSGQuatImpl(ImuCorrection).ToQuat()); - std::vector StartPositionsVector(FSGArrayUtils::ToStdVector< - FVector, FSGVect3DImpl::FVect3DType, FSGVect3DImpl, &FSGVect3DImpl::ToVect3D>(StartPositions)); + std::vector StartPositionsVector{ + FSGArrayUtils::ToMillimeters(StartPositions) + }; - std::vector StartRotationsVector(FSGArrayUtils::ToStdVector< - FQuat, FSGQuatImpl::FQuatType, FSGQuatImpl, &FSGQuatImpl::ToQuat>(StartRotations)); + std::vector StartRotationsVector{ + FSGArrayUtils::ToStdVector(StartRotations) + }; std::vector> GloveLengthsVector{ - FSGArrayUtils::ToStdVector( - GloveLengths) + FSGArrayUtils::ToMillimeters(GloveLengths) }; std::vector FunctionsVector{FSGArrayUtils::ToStdVector(Functions)}; @@ -264,7 +265,7 @@ void FSGSenseGloveInfoImpl::SetImuCorrection(const FQuat& ImuCorrection) TArray FSGSenseGloveInfoImpl::GetStartPositions() const { TArray StartPositionsArray{ - FSGArrayUtils::FromStdVector( + FSGArrayUtils::FromMillimeters( Pimpl->SenseGloveInfo.GetStartPositions())}; return MoveTemp(StartPositionsArray); } @@ -272,8 +273,7 @@ TArray FSGSenseGloveInfoImpl::GetStartPositions() const void FSGSenseGloveInfoImpl::SetStartPositions(const TArray& StartPositions) { std::vector StartPositionsVector{ - FSGArrayUtils::ToStdVector( - StartPositions) + FSGArrayUtils::ToMillimeters(StartPositions) }; Pimpl->SenseGloveInfo.SetStartPositions(MoveTemp(StartPositionsVector)); } @@ -298,8 +298,7 @@ void FSGSenseGloveInfoImpl::SetStartRotations(const TArray& StartRotation TArray> FSGSenseGloveInfoImpl::GetGloveLengths() const { TArray> GloveLengths{ - FSGArrayUtils::FromStdVector< - FSGVect3DImpl::FVect3DType, FVector, FSGVect3DImpl, &FSGVect3DImpl::ToFVector>( + FSGArrayUtils::FromMillimeters( Pimpl->SenseGloveInfo.GetGloveLengths()) }; return MoveTemp(GloveLengths); @@ -308,8 +307,7 @@ TArray> FSGSenseGloveInfoImpl::GetGloveLengths() const void FSGSenseGloveInfoImpl::SetGloveLengths(const TArray>& GloveLengths) const { std::vector> GloveLengthsVector{ - FSGArrayUtils::ToStdVector( - GloveLengths) + FSGArrayUtils::ToMillimeters(GloveLengths) }; Pimpl->SenseGloveInfo.SetGloveLengths(MoveTemp(GloveLengthsVector)); } @@ -328,8 +326,9 @@ void FSGSenseGloveInfoImpl::SetFunctions(const TArray& Functions) const FVector FSGSenseGloveInfoImpl::GetStartPosition(const ESGFinger Finger) const { - FVector StartPosition(FSGVect3DImpl(Pimpl->SenseGloveInfo.GetStartPosition( - FSGCoreEnumCast::ToEFinger(Finger))).ToFVector()); + FVector StartPosition{FSGUnits::MillimetersToCentimeters( + Pimpl->SenseGloveInfo.GetStartPosition(FSGCoreEnumCast::ToEFinger(Finger))) + }; return MoveTemp(StartPosition); } @@ -343,10 +342,11 @@ FQuat FSGSenseGloveInfoImpl::GetStartRotation(const ESGFinger Finger) const TArray FSGSenseGloveInfoImpl::GetGloveLengths(const ESGFinger Finger) const { std::vector GloveLengthsVector{ - Pimpl->SenseGloveInfo.GetGloveLengths(FSGCoreEnumCast::ToEFinger(Finger))}; + Pimpl->SenseGloveInfo.GetGloveLengths(FSGCoreEnumCast::ToEFinger(Finger)) + }; TArray GloveLengthsArray{ - FSGArrayUtils::FromStdVector( - MoveTemp(GloveLengthsVector))}; + FSGArrayUtils::FromMillimeters(MoveTemp(GloveLengthsVector)) + }; return MoveTemp(GloveLengthsArray); } diff --git a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGlovePoseImpl.cpp b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGlovePoseImpl.cpp index d6f5133c..9f1e9f50 100644 --- a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGlovePoseImpl.cpp +++ b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGlovePoseImpl.cpp @@ -113,8 +113,7 @@ FSGSenseGlovePoseImpl::FSGSenseGlovePoseImpl(bool bRightHanded, const TArray 22 ) */ { std::vector> JointPositionsVector{ - FSGArrayUtils::ToStdVector( - JointPositions) + FSGArrayUtils::ToMillimeters(JointPositions) }; std::vector> JointRotationsVector{ FSGArrayUtils::ToStdVector( @@ -184,7 +183,7 @@ void FSGSenseGlovePoseImpl::SetIsRight(const bool bRightHanded) const TArray> FSGSenseGlovePoseImpl::GetJointPositions() const { const TArray> JointPositions{ - FSGArrayUtils::FromStdVector( + FSGArrayUtils::FromMillimeters( Pimpl->SenseGlovePose.GetJointPositions()) }; return JointPositions; @@ -193,8 +192,7 @@ TArray> FSGSenseGlovePoseImpl::GetJointPositions() const void FSGSenseGlovePoseImpl::SetJointPositions(const TArray>& JointPositions) const { std::vector> JointPositionsVector{ - FSGArrayUtils::ToStdVector( - JointPositions) + FSGArrayUtils::ToMillimeters(JointPositions) }; Pimpl->SenseGlovePose.SetJointPositions(MoveTemp(JointPositionsVector)); } @@ -238,7 +236,7 @@ void FSGSenseGlovePoseImpl::SetGloveAngles(const TArray>& GloveA TArray FSGSenseGlovePoseImpl::GetThimblePositions() const { const TArray ThimblePositions{ - FSGArrayUtils::FromStdVector( + FSGArrayUtils::FromMillimeters( Pimpl->SenseGlovePose.GetThimblePositions()) }; return ThimblePositions; @@ -266,7 +264,7 @@ TArray FSGSenseGlovePoseImpl::CalculateFingerTips( const FSGSenseGloveHandProfileImpl& SenseGloveHandProfileImpl) const { const TArray FingerTips{ - FSGArrayUtils::FromStdVector( + FSGArrayUtils::FromMillimeters( Pimpl->SenseGlovePose.CalculateFingerTips(SenseGloveHandProfileImpl.ToSenseGloveHandProfile())) }; return FingerTips; @@ -275,11 +273,10 @@ TArray FSGSenseGlovePoseImpl::CalculateFingerTips( TArray FSGSenseGlovePoseImpl::CalculateFingerTips(const TArray& FingerOffsets) const { std::vector FingerOffsetsVector{ - FSGArrayUtils::ToStdVector( - FingerOffsets) + FSGArrayUtils::ToMillimeters(FingerOffsets) }; TArray FingerTips{ - FSGArrayUtils::FromStdVector( + FSGArrayUtils::FromMillimeters( Pimpl->SenseGlovePose.CalculateFingerTips(MoveTemp(FingerOffsetsVector))) }; return FingerTips; diff --git a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveVarsImpl.cpp b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveVarsImpl.cpp index ce6177ca..a6290ca5 100644 --- a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveVarsImpl.cpp +++ b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGSenseGloveVarsImpl.cpp @@ -68,7 +68,7 @@ TArray FSGSenseGloveVarsImpl::GetStartPositions(const FString& Hardware { std::string HardwareVersionString(TCHAR_TO_UTF8(*HardwareVersion)); const TArray StartPositions{ - FSGArrayUtils::FromStdVector( + FSGArrayUtils::FromMillimeters( FSenseGloveVarsType::GetStartPositions(MoveTemp(HardwareVersionString), bRightHanded)) }; return StartPositions; @@ -88,7 +88,7 @@ TArray> FSGSenseGloveVarsImpl::GetGloveLengths(const FString& Ha { std::string HardwareVersionString(TCHAR_TO_UTF8(*HardwareVersion)); const TArray> GloveLengths{ - FSGArrayUtils::FromStdVector( + FSGArrayUtils::FromMillimeters( FSenseGloveVarsType::GetGloveLengths(MoveTemp(HardwareVersionString))) }; return GloveLengths; diff --git a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGTrackingImpl.cpp b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGTrackingImpl.cpp index b735f030..cdd6e49c 100644 --- a/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGTrackingImpl.cpp +++ b/Source/SenseGloveCoreImpl/Private/SGCoreImpl/SGTrackingImpl.cpp @@ -48,9 +48,13 @@ void FSGTrackingImpl::CalculateLocation(const FVector& TrackedPosition, const FQ const FVector& PositionOffset, const FQuat& RotationOffset, FVector& OutNewPosition, FQuat& OutNewRotation) { - FSGVect3DImpl::FVect3DType TrackedPositionVect3D(FSGVect3DImpl(TrackedPosition).ToVect3D()); + FSGVect3DImpl::FVect3DType TrackedPositionVect3D{ + FSGUnits::CentimetersToMillimeters(TrackedPosition) + }; FSGQuatImpl::FQuatType TrackedRotationQuat(FSGQuatImpl(TrackedRotation).ToQuat()); - FSGVect3DImpl::FVect3DType PositionOffsetVect3D(FSGVect3DImpl(PositionOffset).ToVect3D()); + FSGVect3DImpl::FVect3DType PositionOffsetVect3D{ + FSGUnits::CentimetersToMillimeters(PositionOffset) + }; FSGQuatImpl::FQuatType RotationOffsetQuat(FSGQuatImpl(RotationOffset).ToQuat()); FSGVect3DImpl::FVect3DType NewPosition; FSGQuatImpl::FQuatType NewRotation; @@ -62,37 +66,40 @@ void FSGTrackingImpl::CalculateLocation(const FVector& TrackedPosition, const FQ NewPosition, NewRotation); - OutNewPosition = FSGVect3DImpl(NewPosition).ToFVector(); + OutNewPosition = FSGUnits::MillimetersToCentimeters(NewPosition); OutNewRotation = FSGQuatImpl(NewRotation).ToFQuat(); } const TArray& FSGTrackingImpl::GetSenseGloveFingerToGlovePositionOrigin() { - static const TArray GlovePositionOrigin{FSGArrayUtils::FromStdVector< - FSGVect3DImpl::FVect3DType, FVector, FSGVect3DImpl, &FSGVect3DImpl::ToFVector>( - FTrackingType::GetSenseGloveFingerToGlovePositionOrigin() - )}; + static const TArray GlovePositionOrigin{ + FSGArrayUtils::FromMillimeters( + FTrackingType::GetSenseGloveFingerToGlovePositionOrigin()) + }; return GlovePositionOrigin; } const TArray& FSGTrackingImpl::GetSenseGloveFingerToGloveRotationOrigin() { - static const TArray GloveRotationOrigin{FSGArrayUtils::FromStdVector< - FSGQuatImpl::FQuatType, FQuat, FSGQuatImpl, &FSGQuatImpl::ToFQuat>( - FTrackingType::GetSenseGloveFingerToGloveRotationOrigin() - )}; + static const TArray GloveRotationOrigin{ + FSGArrayUtils::FromStdVector( + FTrackingType::GetSenseGloveFingerToGloveRotationOrigin()) + }; return GloveRotationOrigin; } const FVector& FSGTrackingImpl::GetSenseGloveWristPositionOffset() { - static const FVector Offset(FSGVect3DImpl(FTrackingType::GetSenseGloveWristPositionOffset()).ToFVector()); + static const FVector Offset{ + FSGUnits::MillimetersToCentimeters( + FTrackingType::GetSenseGloveWristPositionOffset()) + }; return Offset; } const FQuat& FSGTrackingImpl::GetSenseGloveWristRotationOffset() { - static FQuat Offset(FSGQuatImpl(FTrackingType::GetSenseGloveWristRotationOffset()).ToFQuat()); + static FQuat Offset{FSGQuatImpl(FTrackingType::GetSenseGloveWristRotationOffset()).ToFQuat()}; return Offset; } @@ -105,7 +112,7 @@ void FSGTrackingImpl::GetSenseGloveMountOffset(const bool bRightHanded, const ES FTrackingType::GetSenseGloveMountOffset(bRightHanded, FSGCoreEnumCast::ToEFinger(ToFinger), IPosition, IRotation); - OutIPosition = FSGVect3DImpl(IPosition).ToFVector(); + OutIPosition = FSGUnits::MillimetersToCentimeters(IPosition); OutIRotation = FSGQuatImpl(IRotation).ToFQuat(); } @@ -119,13 +126,16 @@ void FSGTrackingImpl::GetSenseGloveTrackerMountOffset(const ESGPositionalTrackin FTrackingType::GetSenseGloveTrackerMountOffset(FSGCoreEnumCast::ToEPositionalTrackingHardware(Hardware), bRightHanded, PositionOffset, RotationOffset); - OutPositionOffset = FSGVect3DImpl(PositionOffset).ToFVector(); + OutPositionOffset = FSGUnits::MillimetersToCentimeters(PositionOffset); OutRotationOffset = FSGQuatImpl(RotationOffset).ToFQuat(); } const FVector& FSGTrackingImpl::GetSenseGloveViveToAttachPosition() { - static const FVector Position(FSGVect3DImpl(FTrackingType::GetSenseGloveViveToAttachPosition()).ToFVector()); + static const FVector Position{ + FSGUnits::MillimetersToCentimeters( + FTrackingType::GetSenseGloveViveToAttachPosition()) + }; return Position; } @@ -137,7 +147,10 @@ const FQuat& FSGTrackingImpl::GetSenseGloveViveToAttachRotation() const FVector& FSGTrackingImpl::GetSenseGloveOculusTouchToAttachPosition() { - static const FVector Position(FSGVect3DImpl(FTrackingType::GetSenseGloveOculusTouchToAttachPosition()).ToFVector()); + static const FVector Position{ + FSGUnits::MillimetersToCentimeters( + FTrackingType::GetSenseGloveOculusTouchToAttachPosition()) + }; return Position; } @@ -149,7 +162,10 @@ const FQuat& FSGTrackingImpl::GetSenseGloveOculusTouchToAttachRotation() const FVector& FSGTrackingImpl::GetNovaToWristPositionOffset() { - static const FVector Offset(FSGVect3DImpl(FTrackingType::GetNovaToWristPositionOffset()).ToFVector()); + static const FVector Offset{ + FSGUnits::MillimetersToCentimeters( + FTrackingType::GetNovaToWristPositionOffset()) + }; return Offset; } @@ -167,13 +183,16 @@ void FSGTrackingImpl::GetNovaGloveWristOffset(const bool bRightHanded, FTrackingType::GetNovaGloveWristOffset(bRightHanded, PositionOffset, RotationOffset); - OutPositionOffset = FSGVect3DImpl(PositionOffset).ToFVector(); + OutPositionOffset = FSGUnits::MillimetersToCentimeters(PositionOffset); OutRotationOffset = FSGQuatImpl(RotationOffset).ToFQuat(); } const FVector& FSGTrackingImpl::GetRightNovaViveToAttachPosition() { - static const FVector Position(FSGVect3DImpl(FTrackingType::GetRightNovaViveToAttachPosition()).ToFVector()); + static const FVector Position{ + FSGUnits::MillimetersToCentimeters( + FTrackingType::GetRightNovaViveToAttachPosition()) + }; return Position; } @@ -185,7 +204,10 @@ const FQuat& FSGTrackingImpl::GetRightNovaViveToAttachRotation() const FVector& FSGTrackingImpl::GetLeftNovaViveToAttachPosition() { - static const FVector Position(FSGVect3DImpl(FTrackingType::GetLeftNovaViveToAttachPosition()).ToFVector()); + static const FVector Position{ + FSGUnits::MillimetersToCentimeters( + FTrackingType::GetLeftNovaViveToAttachPosition()) + }; return Position; } @@ -197,7 +219,10 @@ const FQuat& FSGTrackingImpl::GetLeftNovaViveToAttachRotation() const FVector& FSGTrackingImpl::GetRightNovaQuest2ToAttachPosition() { - static const FVector Position(FSGVect3DImpl(FTrackingType::GetRightNovaQuest2ToAttachPosition()).ToFVector()); + static const FVector Position{ + FSGUnits::MillimetersToCentimeters( + FTrackingType::GetRightNovaQuest2ToAttachPosition()) + }; return Position; } @@ -209,7 +234,10 @@ const FQuat& FSGTrackingImpl::GetRightNovaQuest2ToAttachRotation() const FVector& FSGTrackingImpl::GetLeftNovaQuest2ToAttachPosition() { - static const FVector Position(FSGVect3DImpl(FTrackingType::GetLeftNovaQuest2ToAttachPosition()).ToFVector()); + static const FVector Position{ + FSGUnits::MillimetersToCentimeters( + FTrackingType::GetLeftNovaQuest2ToAttachPosition()) + }; return Position; } @@ -221,7 +249,10 @@ const FQuat& FSGTrackingImpl::GetLeftNovaQuest2ToAttachRotation() const FVector& FSGTrackingImpl::GetRightNovaPico2ToAttachPosition() { - static FVector Position(FSGVect3DImpl(FTrackingType::GetRightNovaPico2ToAttachPosition()).ToFVector()); + static FVector Position{ + FSGUnits::MillimetersToCentimeters( + FTrackingType::GetRightNovaPico2ToAttachPosition()) + }; return Position; } @@ -246,7 +277,7 @@ void FSGTrackingImpl::GetNovaGloveTrackerOffset(const ESGPositionalTrackingHardw FTrackingType::GetNovaGloveTrackerOffset(FSGCoreEnumCast::ToEPositionalTrackingHardware(Hardware), bRightHanded, PositionOffset, RotationOffset); - OutPositionOffset = FSGVect3DImpl(PositionOffset).ToFVector(); + OutPositionOffset = FSGUnits::MillimetersToCentimeters(PositionOffset); OutRotationOffset = FSGQuatImpl(RotationOffset).ToFQuat(); }