---
title: ProjectiveTransform3D
framework: spatial
role: symbol
role_heading: Structure
path: spatial/projectivetransform3d
---

# ProjectiveTransform3D

A 3D projective transformation matrix.

## Declaration

```swift
struct ProjectiveTransform3D
```

## Topics

### Creating a 3D projective transform structure

- [init()](spatial/projectivetransform3d/init()-1clia.md)
- [init()](spatial/projectivetransform3d/init()-6c4f4.md)
- [init(_:)](spatial/projectivetransform3d/init(_:)-7b2bq.md)
- [init(_:)](spatial/projectivetransform3d/init(_:)-6g88l.md)
- [init(matrix:)](spatial/projectivetransform3d/init(matrix:)-8eg5x.md)
- [init(_:)](spatial/projectivetransform3d/init(_:)-9t2jh.md)
- [init(pose:)](spatial/projectivetransform3d/init(pose:).md)
- [init(scale:rotation:translation:)](spatial/projectivetransform3d/init(scale:rotation:translation:)-4h5wm.md)
- [init(shear:)](spatial/projectivetransform3d/init(shear:).md)
- [init(leftTangent:rightTangent:topTangent:bottomTangent:nearZ:farZ:reverseZ:)](spatial/projectivetransform3d/init(lefttangent:righttangent:toptangent:bottomtangent:nearz:farz:reversez:).md)
- [init(fovY:aspectRatio:nearZ:farZ:)](spatial/projectivetransform3d/init(fovy:aspectratio:nearz:farz:).md)
- [init(fovY:aspectRatio:nearZ:farZ:reverseZ:)](spatial/projectivetransform3d/init(fovy:aspectratio:nearz:farz:reversez:).md)
- [init(scaledPose:)](spatial/projectivetransform3d/init(scaledpose:).md)

### Inspecting a 3D projective transform’s properties

- [inverse](spatial/projectivetransform3d/inverse.md)
- [scaleComponent](spatial/projectivetransform3d/scalecomponent.md)
- [translation](spatial/projectivetransform3d/translation.md)
- [matrix](spatial/projectivetransform3d/matrix.md)

### Transforming a 3D projective transform structure

- [sheared(_:)](spatial/projectivetransform3d/sheared(_:).md)
- [AxisWithFactors](spatial/axiswithfactors.md)
- [Axis3D](spatial/axis3d.md)
- [flip(along:)](spatial/projectivetransform3d/flip(along:).md)
- [flipped(along:)](spatial/projectivetransform3d/flipped(along:).md)

### Decomposing a 3D projective transform

- [rotation](spatial/projectivetransform3d/rotation.md)

### Checking characteristics

- [is3DProjection()](spatial/projectivetransform3d/is3dprojection().md)
- [isUniform(overDimensions:)](spatial/projectivetransform3d/isuniform(overdimensions:).md)
- [isAffine](spatial/projectivetransform3d/isaffine.md)
- [isInvertible](spatial/projectivetransform3d/isinvertible.md)

### Comparing values

- [isApproximatelyEqual(to:tolerance:)](spatial/projectivetransform3d/isapproximatelyequal(to:tolerance:).md)

### Applying arithmetic operations

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

### Deprecated symbols

- [offset](spatial/projectivetransform3d/offset.md)
- [scale](spatial/projectivetransform3d/scale.md)
- [inverted()](spatial/projectivetransform3d/inverted().md)
- [init(matrix:)](spatial/projectivetransform3d/init(matrix:)-zfb.md)
- [init(scale:rotation:translation:)](spatial/projectivetransform3d/init(scale:rotation:translation:)-8qxxq.md)
- [init(fovyRadians:aspectRatio:nearZ:farZ:reverseZ:)](spatial/projectivetransform3d/init(fovyradians:aspectratio:nearz:farz:reversez:).md)
- [init(translation:)](spatial/projectivetransform3d/init(translation:).md)
- [init(fovyRadians:aspectRatio:nearZ:farZ:)](spatial/projectivetransform3d/init(fovyradians:aspectratio:nearz:farz:).md)

### Initializers

- [init(_:)](spatial/projectivetransform3d/init(_:)-7nv9f.md)

### Default Implementations

- [CustomReflectable Implementations](spatial/projectivetransform3d/customreflectable-implementations.md)
- [Scalable3DProtocol Implementations](spatial/projectivetransform3d/scalable3dprotocol-implementations.md)
- [Shearable3DProtocol Implementations](spatial/projectivetransform3d/shearable3dprotocol-implementations.md)
- [Transform3DProtocol Implementations](spatial/projectivetransform3d/transform3dprotocol-implementations.md)

## Relationships

### Conforms To

- [BitwiseCopyable](swift/bitwisecopyable.md)
- [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)
- [Rotatable3D](spatial/rotatable3d.md)
- [Rotatable3DProtocol](spatial/rotatable3dprotocol.md)
- [Scalable3D](spatial/scalable3d.md)
- [Scalable3DProtocol](spatial/scalable3dprotocol.md)
- [Sendable](swift/sendable.md)
- [SendableMetatype](swift/sendablemetatype.md)
- [Shearable3D](spatial/shearable3d.md)
- [Shearable3DProtocol](spatial/shearable3dprotocol.md)
- [SpatialTypeProtocol](spatial/spatialtypeprotocol.md)
- [Transform3DProtocol](spatial/transform3dprotocol.md)
- [Translatable3D](spatial/translatable3d.md)
- [Translatable3DProtocol](spatial/translatable3dprotocol.md)

## See Also

### Affine and projective transforms

- [AffineTransform3D](spatial/affinetransform3d.md)
- [AffineTransform3DFloat](spatial/affinetransform3dfloat.md)
- [ProjectiveTransform3DFloat](spatial/projectivetransform3dfloat.md)
