---
title: Rotation3D
framework: spatial
role: symbol
role_heading: Structure
path: spatial/rotation3d
---

# Rotation3D

A rotation in three dimensions.

## Declaration

```swift
struct Rotation3D
```

## Topics

### Creating a 3D rotation structure

- [init()](spatial/rotation3d/init()-2uz53.md)
- [init()](spatial/rotation3d/init()-krpj.md)
- [init(eulerAngles:)](spatial/rotation3d/init(eulerangles:).md)
- [init(eulerAngles:)](spatial/rotation3d/init(eulerangles:).md)
- [EulerAngles](spatial/eulerangles.md)
- [init(quaternion:)](spatial/rotation3d/init(quaternion:)-2c79y.md)
- [init(_:)](spatial/rotation3d/init(_:)-8z2bn.md)
- [init(_:)](spatial/rotation3d/init(_:)-829qb.md)
- [init(angle:axis:)](spatial/rotation3d/init(angle:axis:).md)
- [init(position:target:up:)](spatial/rotation3d/init(position:target:up:).md)
- [init(forward:)](spatial/rotation3d/init(forward:).md)
- [init(forward:up:)](spatial/rotation3d/init(forward:up:).md)
- [init(forward:up:)](spatial/rotation3d/init(forward:up:).md)

### Inspecting a 3D rotation’s properties

- [angle](spatial/rotation3d/angle.md)
- [axis](spatial/rotation3d/axis.md)
- [eulerAngles(order:)](spatial/rotation3d/eulerangles(order:).md)
- [EulerAngles](spatial/eulerangles.md)
- [quaternion](spatial/rotation3d/quaternion.md)
- [vector](spatial/rotation3d/vector.md)

### Transforming a 3D rotation structure

- [slerp(from:to:t:along:)](spatial/rotation3d/slerp(from:to:t:along:).md)
- [Rotation3D.SlerpPath](spatial/rotation3d/slerppath.md)
- [inverse](spatial/rotation3d/inverse.md)
- [identity](spatial/rotation3d/identity.md)

### Decomposing a 3D rotation structure

- [swing(twistAxis:)](spatial/rotation3d/swing(twistaxis:).md)
- [twist(twistAxis:)](spatial/rotation3d/twist(twistaxis:).md)
- [swingTwist(twistAxis:)](spatial/rotation3d/swingtwist(twistaxis:).md)
- [swing(twistAxis:)](spatial/rotation3d/swing(twistaxis:).md)
- [twist(twistAxis:)](spatial/rotation3d/twist(twistaxis:).md)

### Checking characteristics

- [isIdentity](spatial/rotation3d/isidentity.md)
- [isIdentity](spatial/rotation3d/isidentity.md)

### Comparing values

- [isApproximatelyEqual(to:tolerance:)](spatial/rotation3d/isapproximatelyequal(to:tolerance:).md)
- [==(_:_:)](spatial/rotation3d/==(_:_:).md)

### Applying arithmetic operations

- [*(_:_:)](spatial/rotation3d/*(_:_:)-1tc8f.md)
- [*(_:_:)](spatial/rotation3d/*(_:_:)-5dxqv.md)
- [*(_:_:)](spatial/rotation3d/*(_:_:)-9t389.md)
- [*(_:_:)](spatial/*(_:_:).md)
- [*=(_:_:)](spatial/rotation3d/*=(_:_:).md)

### Interpolating a 3D rotation structure

- [spline(leftEndpoint:from:to:rightEndpoint:t:)](spatial/rotation3d/spline(leftendpoint:from:to:rightendpoint:t:).md)

### Deprecated symbols

- [init(_:_:_:order:)](spatial/eulerangles/init(_:_:_:order:).md)
- [init(eye:target:up:)](spatial/rotation3d/init(eye:target:up:).md)
- [init(axis:angle:)](spatial/rotation3d/init(axis:angle:).md)
- [init(quaternion:)](spatial/rotation3d/init(quaternion:)-6ajmn.md)
- [zero](spatial/rotation3d/zero.md)
- [isZero](spatial/rotation3d/iszero.md)

### Initializers

- [init(_:)](spatial/rotation3d/init(_:)-1r1iq.md)
- [init(_:)](spatial/rotation3d/init(_:)-9yxln.md)
- [init(quaternion:)](spatial/rotation3d/init(quaternion:)-500aq.md)

### Default Implementations

- [CustomReflectable Implementations](spatial/rotation3d/customreflectable-implementations.md)
- [Decodable Implementations](spatial/rotation3d/decodable-implementations.md)
- [Encodable Implementations](spatial/rotation3d/encodable-implementations.md)
- [Equatable Implementations](spatial/rotation3d/equatable-implementations.md)
- [Hashable Implementations](spatial/rotation3d/hashable-implementations.md)
- [ProjectiveTransformable3D Implementations](spatial/rotation3d/projectivetransformable3d-implementations.md)

## Relationships

### Conforms To

- [Copyable](swift/copyable.md)
- [CustomReflectable](swift/customreflectable.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Decodable](swift/decodable.md)
- [Encodable](swift/encodable.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [Hashable](swift/hashable.md)
- [ProjectiveTransformable3D](spatial/projectivetransformable3d.md)
- [Rotatable3D](spatial/rotatable3d.md)
- [Rotatable3DProtocol](spatial/rotatable3dprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [SpatialTypeProtocol](spatial/spatialtypeprotocol.md)

## See Also

### 3D primitives

- [Point3D](spatial/point3d.md)
- [Point3DFloat](spatial/point3dfloat.md)
- [Size3D](spatial/size3d.md)
- [Size3DFloat](spatial/size3dfloat.md)
- [Rect3D](spatial/rect3d.md)
- [Rect3DFloat](spatial/rect3dfloat.md)
- [Rotation3DFloat](spatial/rotation3dfloat.md)
- [RotationAxis3D](spatial/rotationaxis3d.md)
- [RotationAxis3DFloat](spatial/rotationaxis3dfloat.md)
- [Pose3D](spatial/pose3d.md)
- [Pose3DFloat](spatial/pose3dfloat.md)
- [ScaledPose3D](spatial/scaledpose3d.md)
- [ScaledPose3DFloat](spatial/scaledpose3dfloat.md)
- [SphericalCoordinates3D](spatial/sphericalcoordinates3d.md)
- [SphericalCoordinates3DFloat](spatial/sphericalcoordinates3dfloat.md)
