> For the complete documentation index, see [llms.txt](https://handtracking.lightbuzz.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://handtracking.lightbuzz.com/api-reference/finger/ring.md).

# Ring

{% hint style="warning" %}
The `Hand` class automatically instantiates the `Ring` class for you.
{% endhint %}

```csharp
public class Ring : Finger
```

Inherits [Finger ](/api-reference/finger.md)class.

### Constructors

| Name                                                                                                                 | Description                                                                        |
| -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| Ring(Dictionary<[FingerJointType](/api-reference/fingerjointtype.md), [FingerJoint](/api-reference/fingerjoint.md)>) | Creates a new Ring object with the specified finger joint types and finger joints. |

### Properties

| Name | Type                                         | Description                                                |
| ---- | -------------------------------------------- | ---------------------------------------------------------- |
| MCP  | [FingerJoint](/api-reference/fingerjoint.md) | Read-Only. The ring finger metacarpophalangeal joint.      |
| PIP  | [FingerJoint](/api-reference/fingerjoint.md) | Read-Only. The ring finger proximal interphalangeal joint. |
| DIP  | [FingerJoint](/api-reference/fingerjoint.md) | Read-Only. The ring finger distal interphalangeal joint.   |
| Tip  | [FingerJoint](/api-reference/fingerjoint.md) | Read-Only. The ring finger tip joint.                      |

### Example

The example shows how to manage a ring finger with the `Ring`class.

#### Create a ring finger with a constructor

```csharp
// Create a ring tip joint with the specified 2D position and 
// 3D position.
FingerJoint ringTip = new FingerJoint
(
    FingerJointType.RingTip,
    new Vector2(3, 3),
    new Vector3(0.3f, 0.3f, 0.3f),
    new Quaternion()
);

// Create a ring DIP joint with the specified 2D position and 
// 3D position.
FingerJoint ringDIP = new FingerJoint
(
    FingerJointType.RingDIP,
    new Vector2(3, 3),
    new Vector3(0.3f, 0.3f, 0.3f),
    new Quaternion()
);

 // Create a ring finger with the specified ring joints.
 Ring ring = new Ring
 (
     new Dictionary<FingerJointType, FingerJoint> 
     {
         { FingerJointType.RingTip, ringTip },
         { FingerJointType.RingDIP, ringDIP }
     }
 );
```

#### Get joint information from a ring finger

```csharp
// Get ring Tip joint.
FingerJoint ringTipNew = ring.Tip;
```
