<!--
{
  "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/Primitive3DProtocol",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Spatial"
    ],
    "preciseIdentifier" : "s:7Spatial19Primitive3DProtocolP"
  },
  "title" : "Primitive3DProtocol"
}
-->

# Primitive3DProtocol

A set of methods common to Spatial primitives.

```
protocol Primitive3DProtocol<Scalar> : Rotatable3DProtocol
```

## Topics

### Instance Properties

[`var isFinite: Bool`](/documentation/Spatial/Primitive3DProtocol/isFinite)

Returns whether the primitive is finite.

[`var isNaN: Bool`](/documentation/Spatial/Primitive3DProtocol/isNaN)

Returns whether the primitive contains any `NaN` values.

[`var isZero: Bool`](/documentation/Spatial/Primitive3DProtocol/isZero)

Returns whether the primitive is zero.

### Instance Methods

[`func apply(Self.Pose)`](/documentation/Spatial/Primitive3DProtocol/apply(_:)-1qcu6)

Applies a pose.

[`func apply(Self.ProjectiveTransform)`](/documentation/Spatial/Primitive3DProtocol/apply(_:)-3bne6)

Applies a projective transform.

[`func apply(Self.AffineTransform)`](/documentation/Spatial/Primitive3DProtocol/apply(_:)-6b1fd)

Applies an affine transform.

[`func applying(Self.AffineTransform) -> Self`](/documentation/Spatial/Primitive3DProtocol/applying(_:)-1tt2b)

Returns the primitive that results from applying an affine transform to the primitive.

[`func applying(Self.Pose) -> Self`](/documentation/Spatial/Primitive3DProtocol/applying(_:)-4ylq8)

Returns the primitive that results from applying a pose to the primitive.

[`func applying(Self.ProjectiveTransform) -> Self`](/documentation/Spatial/Primitive3DProtocol/applying(_:)-690k5)

Returns the primitive that results from applying a projective transform to the primitive.

[`func unapply(Self.ProjectiveTransform)`](/documentation/Spatial/Primitive3DProtocol/unapply(_:)-22esh)

Unapplies a projective transform.

[`func unapply(Self.AffineTransform)`](/documentation/Spatial/Primitive3DProtocol/unapply(_:)-34afa)

Unapplies an affine transform.

[`func unapply(Self.Pose)`](/documentation/Spatial/Primitive3DProtocol/unapply(_:)-5dfj2)

Unapplies a pose.

[`func unapplying(Self.ProjectiveTransform) -> Self`](/documentation/Spatial/Primitive3DProtocol/unapplying(_:)-1px2q)

Returns the primitive that results from unapplying a projective transform to the primitive.

[`func unapplying(Self.AffineTransform) -> Self`](/documentation/Spatial/Primitive3DProtocol/unapplying(_:)-53rsn)

Returns the primitive that results from unapplying an affine transform to the primitive.

[`func unapplying(Self.Pose) -> Self`](/documentation/Spatial/Primitive3DProtocol/unapplying(_:)-5fmf2)

Returns the primitive that results from unapplying a pose to the primitive.

### Type Properties

[`static var infinity: Self`](/documentation/Spatial/Primitive3DProtocol/infinity)

A primitive with infinite values.

[`static var zero: Self`](/documentation/Spatial/Primitive3DProtocol/zero)

A primitive with zero values.

## Relationships

### Conforming Types

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

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

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

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

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

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

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

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

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

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

### Inherits From

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

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

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

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

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

---

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)