<!--
{
  "availability" : [
    "iOS: 26.0.0 -",
    "iPadOS: 26.0.0 -",
    "macCatalyst: -",
    "macOS: 26.0.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: 26.0.0 -",
    "watchOS: 26.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Spatial",
  "identifier" : "/documentation/Spatial/Transform3DProtocol",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Spatial"
    ],
    "preciseIdentifier" : "s:7Spatial19Transform3DProtocolP"
  },
  "title" : "Transform3DProtocol"
}
-->

# Transform3DProtocol

A set of methods that are common to transforms.

```
protocol Transform3DProtocol : SpatialTypeProtocol
```

## Topics

### Initializers

[`init(rotation: Self.Rotation)`](/documentation/Spatial/Transform3DProtocol/init(rotation:))

Returns a new rotation transform.

[`init(scale: Self.Size)`](/documentation/Spatial/Transform3DProtocol/init(scale:))

Returns a new scale transform.

[`init(scale: Self.Size, rotation: Self.Rotation, translation: Self.Vector)`](/documentation/Spatial/Transform3DProtocol/init(scale:rotation:translation:))

Returns a new scale, rotate, translate transform.

[`init(shear: Self.AxisEnumeration)`](/documentation/Spatial/Transform3DProtocol/init(shear:))

Returns a new shear transform

[`init(translation: Self.Vector)`](/documentation/Spatial/Transform3DProtocol/init(translation:))

Returns a new translate transform.

### Instance Properties

[`var inverse: Self?`](/documentation/Spatial/Transform3DProtocol/inverse)

Returns a transform that’s constructed by inverting an existing transform.

[`var isIdentity: Bool`](/documentation/Spatial/Transform3DProtocol/isIdentity)

Returns `true` if the transform is the identity transform.

[`var isRectilinear: Bool`](/documentation/Spatial/Transform3DProtocol/isRectilinear)

Returns `true` if the transform is rectilinear.

[`var isTranslation: Bool`](/documentation/Spatial/Transform3DProtocol/isTranslation)

Returns `true` if the transform is a translation.

[`var isUniform: Bool`](/documentation/Spatial/Transform3DProtocol/isUniform)

Returns `true` if the transform is uniform over all dimensions.

[`var rotation: Self.Rotation?`](/documentation/Spatial/Transform3DProtocol/rotation)

The transform’s rotation. This is `nil` if the transform isn’t scale-rotate-translate.

[`var translation: Self.Vector`](/documentation/Spatial/Transform3DProtocol/translation)

The transform’s translation.

### Instance Methods

[`func concatenating(Self) -> Self`](/documentation/Spatial/Transform3DProtocol/concatenating(_:))

Returns a transform that’s constructed by combining two existing transforms.

[`func flip(along: Axis3D)`](/documentation/Spatial/Transform3DProtocol/flip(along:))

Flips the transform along the specified axis.

[`func flipped(along: Axis3D) -> Self`](/documentation/Spatial/Transform3DProtocol/flipped(along:))

Returns the transform flipped along the specified axis.

[`func isApproximatelyEqual(to: Self, tolerance: Self.Scalar) -> Bool`](/documentation/Spatial/Transform3DProtocol/isApproximatelyEqual(to:tolerance:))

Returns a Boolean value that indicates whether two transforms are equal within a specified tolerance.

[`func isUniform(overDimensions: Dimension3DSet) -> Bool`](/documentation/Spatial/Transform3DProtocol/isUniform(overDimensions:))

Returns `true` if the transform is uniform over the specified dimensions.

### Type Properties

[`static var identity: Self`](/documentation/Spatial/Transform3DProtocol/identity)

Returns the identity transform.

## Relationships

### Conforming Types

[`AffineTransform3DFloat`](/documentation/Spatial/AffineTransform3DFloat)

[`AffineTransform3D`](/documentation/Spatial/AffineTransform3D)

[`ProjectiveTransform3D`](/documentation/Spatial/ProjectiveTransform3D)

[`ProjectiveTransform3DFloat`](/documentation/Spatial/ProjectiveTransform3DFloat)

### Inherits From

[`Decodable`](/documentation/Swift/Decodable)

[`Equatable`](/documentation/Swift/Equatable)

[`SpatialTypeProtocol`](/documentation/Spatial/SpatialTypeProtocol)

[`Encodable`](/documentation/Swift/Encodable)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)