# Hand

```csharp
public class Hand
```

### Constructors

| Name                                                                                                                                                                     | Description                                                                           |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------- |
| Hand()                                                                                                                                                                   | Creates a new Hand object.                                                            |
| Hand([Hand](/api-reference/hand.md))                                                                                                                                     | Creates a new Hand object by copying the data from the specified hand.                |
| Hand(int, [HandSide](/api-reference/handside.md), float, Dictionary<[FingerJointType](/api-reference/fingerjointtype.md), [FingerJoint](/api-reference/fingerjoint.md)>) | Creates a new Hand object with the specified id, type, confidence, and finger joints. |

### Properties

| Name                                                        | Type                                                                                                           | Description                                   |
| ----------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | --------------------------------------------- |
| ID                                                          | int                                                                                                            | The ID of the hand.                           |
| Side                                                        | [HandSide](/api-reference/handside.md)                                                                         | The side of the hand (left or right).         |
| Confidence                                                  | float                                                                                                          | The tracking confidence of the hand (0 to 1). |
| FingerJoints                                                | Dictionary<[FingerJointType](/api-reference/fingerjointtype.md), [FingerJoint](/api-reference/fingerjoint.md)> | The finger joints of the hand.                |
| Thumb                                                       | [Thumb](/api-reference/finger/thumb.md)                                                                        | The thumb of the hand.                        |
| Index                                                       | [Index](/api-reference/finger/index.md)                                                                        | The index finger of the hand.                 |
| Middle                                                      | [Middle](/api-reference/finger/middle.md)                                                                      | The middle finger of the hand.                |
| Ring                                                        | [Ring](/api-reference/finger/ring.md)                                                                          | The ring finger of the hand.                  |
| Pinky                                                       | [Pinky](/api-reference/finger/pinky.md)                                                                        | The pinky finger of the hand.                 |
| Palm                                                        | [Palm](/api-reference/finger/palm.md)                                                                          | The palm of the hand.                         |
| this\[[FingerJointType](/api-reference/fingerjointtype.md)] | [FingerJoint](/api-reference/fingerjoint.md)                                                                   | Read-Only. The specified finger joint.        |
| IsOpen                                                      | bool                                                                                                           | Read-Only. If the palm is open or closed.     |
| BoundingBox2D                                               | [UnityEngine.Rect](https://docs.unity3d.com/ScriptReference/Rect.html)                                         | Read-Only. The 3D bounding box of the hand.   |
| BoundingBox3D                                               | [UnityEngine.Rect](https://docs.unity3d.com/ScriptReference/Rect.html)                                         | Read-Only. The 3D bounding box of the hand.   |

### Methods

| Name                                                         | Return Type                                  | Description                                                     |
| ------------------------------------------------------------ | -------------------------------------------- | --------------------------------------------------------------- |
| ToJson()                                                     | string                                       | Converts the value of this instance to a Json formatted string. |
| Parent([FingerJointType](/api-reference/fingerjointtype.md)) | [FingerJoint](/api-reference/fingerjoint.md) | Returns the Parent joint.                                       |
| Child([FingerJointType](/api-reference/fingerjointtype.md))  | [FingerJoint](/api-reference/fingerjoint.md) | Returns the Child joint.                                        |

### Example

The examples show how to manage a hand with the `Hand` class.

#### Create a hand object

To create a hand object, start by creating a dictionary of `FingerJoint` objects.

```csharp
Dictionary<FingerJointType, FingerJoint> fingerJoints = new Dictionary<FingerJointType, FingerJoint>();
fingerJoints.Add(FingerJointType.IndexTip, indexTip);
fingerJoints.Add(FingerJointType.IndexDIP, indexDIP);
```

Then, there are 3 supported constructors to create a hand object.

Create a hand object with the specified ID, type, confidence and finger joints.

```csharp
Hand rightHand = new Hand(1, HandSide.Right, 0.5f, fingerJoints);
```

Create an empty hand object and assign values to each property.

```csharp
Hand leftHand = new Hand();

leftHand.ID = 2;
leftHand.Side = HandSide.Left;
leftHand.Confidence = 0.5f;
leftHand.FingerJoints = fingerJoints;

```

Create a hand object by copying the values of another hand object.

```csharp
Hand rightHandCopy = new Hand(rightHand);
```

#### Get finger and joint information from a hand

To retrieve finger and finger joint information from a hand object, you can retrieve the finger from the hand and then get the finger joint from the finger.

```csharp
// Get the index finger from the hand.
Index index = rightHand.Index;

// Get the index tip joint from the retrieved finger.
FingerJoint rightIndexTip = index.Tip;
```

Alternatively, you can get the finger joint information directly from the hand object.

```csharp
FingerJoint rightIndexTipNew = rightHand.Index.Tip;
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://handtracking.lightbuzz.com/api-reference/hand.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
