<!--
{
  "availability" : [
    "iOS: 26.0.0 -",
    "iPadOS: 26.0.0 -",
    "macCatalyst: 26.0.0 -",
    "macOS: 26.0.0 -",
    "tvOS: 26.0.0 -",
    "visionOS: 26.0.0 -",
    "watchOS: 26.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Spatial",
  "identifier" : "/documentation/Spatial/ProjectiveTransform3DFloat",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Spatial"
    ],
    "preciseIdentifier" : "c:@SA@SPProjectiveTransform3DFloat"
  },
  "title" : "ProjectiveTransform3DFloat"
}
-->

# ProjectiveTransform3DFloat

A single-precision 3D projective transformation matrix.

```
struct ProjectiveTransform3DFloat
```

## Topics

### Operators

[`static func * (ProjectiveTransform3DFloat, ProjectiveTransform3DFloat) -> ProjectiveTransform3DFloat`](/documentation/Spatial/ProjectiveTransform3DFloat/*(_:_:))

Returns the product of two projective transforms.

[`static func *= (inout ProjectiveTransform3DFloat, ProjectiveTransform3DFloat)`](/documentation/Spatial/ProjectiveTransform3DFloat/*=(_:_:))

Calculates the concatenation of two projective transforms and stores the result in the left-hand-side variable.

### Initializers

[`init()`](/documentation/Spatial/ProjectiveTransform3DFloat/init()-89m3y)

Returns a new identity projective transform.

[`init()`](/documentation/Spatial/ProjectiveTransform3DFloat/init()-c35e)

Returns a new identity projective transform.

[`init(simd_double4x4)`](/documentation/Spatial/ProjectiveTransform3DFloat/init(_:)-43p4e)

Returns a new affine transform structure from the specified double-precision 4 x 3 matrix.

[`init(simd_float4x4)`](/documentation/Spatial/ProjectiveTransform3DFloat/init(_:)-56itt)

Returns a new transform from the specified 4 x 4 matrix.

[`init(AffineTransform3DFloat)`](/documentation/Spatial/ProjectiveTransform3DFloat/init(_:)-6ffxa)

Returns a new transform from the specified affine transform.

[`init(ProjectiveTransform3D)`](/documentation/Spatial/ProjectiveTransform3DFloat/init(_:)-9r5ov)

Returns a single-precision projective transformation from a double-precision projective transformation.

[`init(fovY: Angle2DFloat, aspectRatio: Float, nearZ: Float, farZ: Float)`](/documentation/Spatial/ProjectiveTransform3DFloat/init(fovY:aspectRatio:nearZ:farZ:))

[`init(fovY: Angle2DFloat, aspectRatio: Float, nearZ: Float, farZ: Float, reverseZ: Bool)`](/documentation/Spatial/ProjectiveTransform3DFloat/init(fovY:aspectRatio:nearZ:farZ:reverseZ:))

[`init(leftTangent: Float, rightTangent: Float, topTangent: Float, bottomTangent: Float, nearZ: Float, farZ: Float, reverseZ: Bool)`](/documentation/Spatial/ProjectiveTransform3DFloat/init(leftTangent:rightTangent:topTangent:bottomTangent:nearZ:farZ:reverseZ:))

[`init(matrix: simd_float4x4)`](/documentation/Spatial/ProjectiveTransform3DFloat/init(matrix:))

[`init(pose: Pose3DFloat)`](/documentation/Spatial/ProjectiveTransform3DFloat/init(pose:))

Returns a new transform from the specified pose.

[`init(scaledPose: ScaledPose3DFloat)`](/documentation/Spatial/ProjectiveTransform3DFloat/init(scaledPose:))

Returns a new transform from the specified scaled pose.

### Instance Properties

[`var isAffine: Bool`](/documentation/Spatial/ProjectiveTransform3DFloat/isAffine)

[`var isInvertible: Bool`](/documentation/Spatial/ProjectiveTransform3DFloat/isInvertible)

[`var matrix: simd_float4x4`](/documentation/Spatial/ProjectiveTransform3DFloat/matrix)

[`var scaleComponent: Size3DFloat`](/documentation/Spatial/ProjectiveTransform3DFloat/scaleComponent)

The projective transform’s scale component.

### Instance Methods

[`func is3DFloatProjection() -> Bool`](/documentation/Spatial/ProjectiveTransform3DFloat/is3DFloatProjection())

### Default Implementations

[CustomReflectable Implementations](/documentation/Spatial/ProjectiveTransform3DFloat/CustomReflectable-Implementations)

[Scalable3DProtocol Implementations](/documentation/Spatial/ProjectiveTransform3DFloat/Scalable3DProtocol-Implementations)

[Shearable3DProtocol Implementations](/documentation/Spatial/ProjectiveTransform3DFloat/Shearable3DProtocol-Implementations)

[Transform3DProtocol Implementations](/documentation/Spatial/ProjectiveTransform3DFloat/Transform3DProtocol-Implementations)

## Relationships

### Conforms To

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

---

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)