> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/holoscan/sdk-user-guide/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/holoscan/sdk-user-guide/_mcp/server.

# holoscan::slerp_interpolate

> Spherical linear interpolation between two 2D poses.

#### Overload 1

```cpp showLineNumbers={false}
template <typename K>
Pose2<K> holoscan::slerp_interpolate(
    K p,
    const Pose2<K> &a,
    const Pose2<K> &b
)
```

Spherical linear interpolation between two 2D poses.

This uses the formula a^(1-p) \* b^p where a and b are matrix transformations. This can be simplified into a \* (a^-1 \* b)^p

**Returns:** Interpolated pose using matrix exponentiation.

**Template parameters**

**`K`** `typename`

Scalar type.

---

**Parameters**

**`p`** `K`

Interpolation parameter (0.0 returns a, 1.0 returns b).

---

**`a`** `const Pose2<K> &`

First pose.

---

**`b`** `const Pose2<K> &`

Second pose.

---

#### Overload 2

```cpp showLineNumbers={false}
template <typename K>
Pose3<K> holoscan::slerp_interpolate(
    K p,
    const Pose3<K> &a,
    const Pose3<K> &b
)
```

Spherical linear interpolation between two 3D poses.

This uses the formula a^(1-p) \* b^p where a and b are matrix transformations. This can be simplified into a \* (a^-1 \* b)^p

**Returns:** Interpolated pose using matrix exponentiation.

**Template parameters**

**`K`** `typename`

Scalar type.

---

**Parameters**

**`p`** `K`

Interpolation parameter (0.0 returns a, 1.0 returns b).

---

**`a`** `const Pose3<K> &`

First pose.

---

**`b`** `const Pose3<K> &`

Second pose.

---