## Description

Rotate the object in 3D using a unit quaternion.

This is similar to Efl.Gfx.Map.rotate_3d but uses a unit quaternion (also known as versor) rather than a direct angle-based rotation around a center point. Use this to avoid gimbal locks.

As with Efl.Gfx.Map.rotate, you provide a pivot and center point to rotate around (in 3D). The Z coordinate of this center point is an absolute value, and not a relative one like X and Y, as objects are flat in a 2D space.

Since 1.20

## Signature

```rotate_quat {
params {
@in qx: double;
@in qy: double;
@in qz: double;
@in qw: double;
@in pivot: free(const(Efl.Gfx), efl_del);
@in cx: double;
@in cy: double;
@in cz: double;
}
}```

## C signature

`void efl_gfx_map_rotate_quat(Eo *obj, double qx, double qy, double qz, double qw, const Efl_Gfx *pivot, double cx, double cy, double cz);`

## Parameters

• qx (in) - The x component of the imaginary part of the quaternion.
• qy (in) - The y component of the imaginary part of the quaternion.
• qz (in) - The z component of the imaginary part of the quaternion.
• qw (in) - The w component of the real part of the quaternion.
• pivot (in) - A pivot object for the center point, can be `null`.
• cx (in) - X relative coordinate of the center point.
• cy (in) - y relative coordinate of the center point.
• cz (in) - Z absolute coordinate of the center point.

## Implemented by

• Efl.Gfx.Map.rotate_quat 