---
title: Rotatable3DProtocol
framework: spatial
role: symbol
role_heading: Protocol
path: spatial/rotatable3dprotocol
---

# Rotatable3DProtocol

A set of methods that defines the interface for Spatial entities that can rotate.

## Declaration

```swift
protocol Rotatable3DProtocol<Scalar> : SpatialTypeProtocol
```

## Topics

### Operators

- [*(_:_:)](spatial/rotatable3dprotocol/*(_:_:).md)

### Instance Methods

- [rotate(by:)](spatial/rotatable3dprotocol/rotate(by:)-66sot.md)
- [rotate(by:)](spatial/rotatable3dprotocol/rotate(by:)-7waub.md)
- [rotated(by:)](spatial/rotatable3dprotocol/rotated(by:)-3xjsw.md)
- [rotated(by:)](spatial/rotatable3dprotocol/rotated(by:)-4mye4.md)

## Relationships

### Inherits From

- [Decodable](swift/decodable.md)
- [Encodable](swift/encodable.md)
- [Equatable](swift/equatable.md)
- [SpatialTypeProtocol](spatial/spatialtypeprotocol.md)

### Inherited By

- [Primitive3DProtocol](spatial/primitive3dprotocol.md)

### Conforming Types

- [AffineTransform3D](spatial/affinetransform3d.md)
- [AffineTransform3DFloat](spatial/affinetransform3dfloat.md)
- [Point3D](spatial/point3d.md)
- [Point3DFloat](spatial/point3dfloat.md)
- [Pose3D](spatial/pose3d.md)
- [Pose3DFloat](spatial/pose3dfloat.md)
- [ProjectiveTransform3D](spatial/projectivetransform3d.md)
- [ProjectiveTransform3DFloat](spatial/projectivetransform3dfloat.md)
- [Ray3D](spatial/ray3d.md)
- [Ray3DFloat](spatial/ray3dfloat.md)
- [Rect3D](spatial/rect3d.md)
- [Rect3DFloat](spatial/rect3dfloat.md)
- [Rotation3D](spatial/rotation3d.md)
- [Rotation3DFloat](spatial/rotation3dfloat.md)
- [ScaledPose3D](spatial/scaledpose3d.md)
- [ScaledPose3DFloat](spatial/scaledpose3dfloat.md)
- [Size3D](spatial/size3d.md)
- [Size3DFloat](spatial/size3dfloat.md)
- [Vector3D](spatial/vector3d.md)
- [Vector3DFloat](spatial/vector3dfloat.md)
