// Fill out your copyright notice in the Description page of Project Settings. #include "PICO_HandTrackingFunctionLibrary.h" #include "PICO_IHandTrackingModule.h" #include "PICO_HandTracking.h" bool UHandTrackingFunctionLibraryPICO::StartHandTrackingPICO() { FHandTrackingPICO* HandTrackingPICO = static_cast(IPICOOpenXRHandTrackingModule::Get().GetInputDevice().Get()); if (HandTrackingPICO) { return HandTrackingPICO->StartHandTracking(); } return false; } void UHandTrackingFunctionLibraryPICO::StopHandTrackingPICO() { FHandTrackingPICO* HandTrackingPICO = static_cast(IPICOOpenXRHandTrackingModule::Get().GetInputDevice().Get()); if (HandTrackingPICO) { HandTrackingPICO->StopHandTracking(); } } bool UHandTrackingFunctionLibraryPICO::UpdateHandTrackingDataPICO() { FHandTrackingPICO* HandTrackingPICO = static_cast(IPICOOpenXRHandTrackingModule::Get().GetInputDevice().Get()); if (HandTrackingPICO) { return HandTrackingPICO->UpdateHandTrackingData(); } return false; } bool UHandTrackingFunctionLibraryPICO::IsHandTrackingSupportPICO() { FHandTrackingPICO* HandTrackingPICO = static_cast(IPICOOpenXRHandTrackingModule::Get().GetInputDevice().Get()); if (HandTrackingPICO) { return HandTrackingPICO->IsHandTrackingStateValid(); } return false; } bool UHandTrackingFunctionLibraryPICO::IsHandTrackingRunningPICO() { FHandTrackingPICO* HandTrackingPICO = static_cast(IPICOOpenXRHandTrackingModule::Get().GetInputDevice().Get()); if (HandTrackingPICO) { return HandTrackingPICO->IsHandTrackingRunning(); } return false; } bool UHandTrackingFunctionLibraryPICO::GetHandTrackingDataPICO(EControllerHand Hand, TArray& OutPositions, TArray& OutRotations, TArray& OutRadii, TArray& LinearVelocity, TArray& AngularVelocity, float& Scale) { FHandTrackingPICO* HandTrackingPICO = static_cast(IPICOOpenXRHandTrackingModule::Get().GetInputDevice().Get()); if (HandTrackingPICO) { return HandTrackingPICO->GetHandTrackingData(Hand, OutPositions, OutRotations, OutRadii, LinearVelocity, AngularVelocity, Scale); } return false; } bool UHandTrackingFunctionLibraryPICO::GetHandTrackingMeshScalePICO(EControllerHand Hand, float& Scale) { FHandTrackingPICO* HandTrackingPICO = static_cast(IPICOOpenXRHandTrackingModule::Get().GetInputDevice().Get()); if (HandTrackingPICO) { return HandTrackingPICO->GetHandTrackingMeshScale(Hand, Scale); } return false; }