<!-- # hard line break macro for HTML -->

# fiftyone.core.threed.transformation

**Classes:**

| [`Vector3`](#fiftyone.core.threed.transformation.Vector3)([x, y, z])                | Represents a three-dimensional vector.                                |
|-------------------------------------------------------------------------------------|-----------------------------------------------------------------------|
| [`Euler`](#fiftyone.core.threed.transformation.Euler)([x, y, z, degrees, sequence]) | Represents intrinsic rotations about the object's own principal axes. |
| [`Quaternion`](#fiftyone.core.threed.transformation.Quaternion)([x, y, z, w])       | Represents a quaternion.                                              |

**Functions:**

| [`normalize_to_vec3`](#fiftyone.core.threed.transformation.normalize_to_vec3)(v)   |    |
|------------------------------------------------------------------------------------|----|
| [`coerce_to_vec3`](#fiftyone.core.threed.transformation.coerce_to_vec3)(v)         |    |

### *class* fiftyone.core.threed.transformation.Vector3(x: float = 0.0, y: float = 0.0, z: float = 0.0)

Bases: [`BaseValidatedDataClass`](fiftyone.core.threed.validators.md#fiftyone.core.threed.validators.BaseValidatedDataClass)

Represents a three-dimensional vector.

**Attributes:**

| [`x`](#fiftyone.core.threed.transformation.Vector3.x)   |    |
|---------------------------------------------------------|----|
| [`y`](#fiftyone.core.threed.transformation.Vector3.y)   |    |
| [`z`](#fiftyone.core.threed.transformation.Vector3.z)   |    |

**Methods:**

| [`to_arr`](#fiftyone.core.threed.transformation.Vector3.to_arr)()   | Converts the vector to a numpy array.   |
|---------------------------------------------------------------------|-----------------------------------------|

#### *property* x *: float*

#### *property* y *: float*

#### *property* z *: float*

#### to_arr()

Converts the vector to a numpy array.

### *class* fiftyone.core.threed.transformation.Euler(x: float = 0.0, y: float = 0.0, z: float = 0.0, degrees: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool) = False, sequence: Literal['XYZ', 'XZY', 'YXZ', 'YZX', 'ZXY', 'ZYX'] = 'XYZ')

Bases: [`Vector3`](#fiftyone.core.threed.transformation.Vector3)

Represents intrinsic rotations about the object’s own principal axes.

**Attributes:**

| [`degrees`](#fiftyone.core.threed.transformation.Euler.degrees)   |    |
|-------------------------------------------------------------------|----|
| [`sequence`](#fiftyone.core.threed.transformation.Euler.sequence) |    |
| [`x`](#fiftyone.core.threed.transformation.Euler.x)               |    |
| [`y`](#fiftyone.core.threed.transformation.Euler.y)               |    |
| [`z`](#fiftyone.core.threed.transformation.Euler.z)               |    |

**Methods:**

| [`to_quaternion`](#fiftyone.core.threed.transformation.Euler.to_quaternion)()   | Converts the euler angles to a quaternion.   |
|---------------------------------------------------------------------------------|----------------------------------------------|
| [`to_arr`](#fiftyone.core.threed.transformation.Euler.to_arr)()                 | Converts the vector to a numpy array.        |

#### *property* degrees *: [bool](fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool)*

#### *property* sequence *: Literal['XYZ', 'XZY', 'YXZ', 'YZX', 'ZXY', 'ZYX']*

#### to_quaternion()

Converts the euler angles to a quaternion.

#### to_arr()

Converts the vector to a numpy array.

#### *property* x *: float*

#### *property* y *: float*

#### *property* z *: float*

### *class* fiftyone.core.threed.transformation.Quaternion(x: float = 0.0, y: float = 0.0, z: float = 0.0, w: float = 1.0)

Bases: [`BaseValidatedDataClass`](fiftyone.core.threed.validators.md#fiftyone.core.threed.validators.BaseValidatedDataClass)

Represents a quaternion.

**Attributes:**

| [`x`](#fiftyone.core.threed.transformation.Quaternion.x)   |    |
|------------------------------------------------------------|----|
| [`y`](#fiftyone.core.threed.transformation.Quaternion.y)   |    |
| [`z`](#fiftyone.core.threed.transformation.Quaternion.z)   |    |
| [`w`](#fiftyone.core.threed.transformation.Quaternion.w)   |    |

**Methods:**

| [`to_euler`](#fiftyone.core.threed.transformation.Quaternion.to_euler)([degrees, sequence])   | Converts the quaternion into euler angles.   |
|-----------------------------------------------------------------------------------------------|----------------------------------------------|
| [`to_arr`](#fiftyone.core.threed.transformation.Quaternion.to_arr)()                          | Converts the quaternion to a numpy array.    |

#### *property* x *: float*

#### *property* y *: float*

#### *property* z *: float*

#### *property* w *: float*

#### to_euler(degrees=False, sequence='XYZ')

Converts the quaternion into euler angles.

#### to_arr()

Converts the quaternion to a numpy array.

### fiftyone.core.threed.transformation.normalize_to_vec3(v: [Vector3](#fiftyone.core.threed.transformation.Vector3) | List[float] | Tuple[float] | array | None) → [Vector3](#fiftyone.core.threed.transformation.Vector3) | None

### fiftyone.core.threed.transformation.coerce_to_vec3(v: [Vector3](#fiftyone.core.threed.transformation.Vector3) | List[float] | Tuple[float] | array | None) → [Vector3](#fiftyone.core.threed.transformation.Vector3) | None
