# UHandTrackingMeshBlueprintFunctionLibrary

`#include <HandTrackingMeshBlueprintFunctionLibrary.h>`

<br />

## Summary

### Inheritance

Inherits from: `UBlueprintFunctionLibrary`

| ### Public static functions ||
|---|---|
| `https://developer.android.com/develop/xr/unreal/reference/class/UHandTrackingMeshBlueprintFunctionLibrary#createhandmesh(EControllerHand ControllerHand, UMaterialInterface *Material, USkeletalMesh *& SkeletalMesh)` | `bool` Creates a hand mesh for a specified hand. |
| `https://developer.android.com/develop/xr/unreal/reference/class/UHandTrackingMeshBlueprintFunctionLibrary#getbonenamefromhandkeypoint(EHandKeypoint HandKeypoint)` | `FName` Gets the hand mesh bone name from an EHandKeypoint value. |
| `https://developer.android.com/develop/xr/unreal/reference/class/UHandTrackingMeshBlueprintFunctionLibrary#getjointtransforms(EControllerHand ControllerHand, TArray< FTransform > & JointTransforms)` | `bool` Gets the transforms for the joints. |
| `https://developer.android.com/develop/xr/unreal/reference/class/UHandTrackingMeshBlueprintFunctionLibrary#sethandmeshscale(EControllerHand ControllerHand, float Scale)` | `bool` Sets the hand mesh scale via OpenXR settings. |

## Public static functions

### CreateHandMesh

```
bool CreateHandMesh(
  EControllerHand ControllerHand,
  UMaterialInterface *Material,
  USkeletalMesh *& SkeletalMesh
)
```
Creates a hand mesh for a specified hand.

<br />

Details Parameters `ControllerHand` Hand to mesh. EControllerHand::Right will use the right hand; anything else will use the left hand. `Material` Material to use (Material must have 'Use with skeletal mesh' parameter set or it will not be visible). `SkeletalMesh` The created mesh, if successful. **Returns** True if the underlying API call was successful.

### GetBoneNameFromHandKeypoint

```
FName GetBoneNameFromHandKeypoint(
  EHandKeypoint HandKeypoint
)
```
Gets the hand mesh bone name from an EHandKeypoint value.

Not all hand keypoints map to bones, so an empty FName may be returned.
Details Parameters `HandKeypoint` Keypoint for which the bone name is desired. **Returns** Name of corresponding bone (may be empty if no bone matches).

### GetJointTransforms

```
bool GetJointTransforms(
  EControllerHand ControllerHand,
  TArray< FTransform > & JointTransforms
)
```
Gets the transforms for the joints.

Use EHandKeypoint enum for indexes into the resulting array.
Details Parameters `ControllerHand` Hand to retrieve. EControllerHand::Right will use the right hand; anything else will use the left hand. `JointTransforms` An array transforms of size EHandKeypointCount transforms, if successful. **Returns** True if the underlying API call was successful.

### SetHandMeshScale

```
bool SetHandMeshScale(
  EControllerHand ControllerHand,
  float Scale
)
```
Sets the hand mesh scale via OpenXR settings.

Note that this scales bones in length but not in radius.
Details Parameters `ControllerHand` Hand to scale. EControllerHand::Right will use the right hand; anything else will use the left hand. **Returns** True if the underlying API call was successful.