<!--
{
  "availability" : [
    "FxPlug: 3.1.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "professional_video_applications",
  "identifier" : "/documentation/professional_video_applications/FxMatrix44",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Professional Video Applications"
    ],
    "preciseIdentifier" : "c:objc(cs)FxMatrix44"
  },
  "title" : "FxMatrix44"
}
-->

# FxMatrix44

The `FxMatrix` class encapsulates a 4x4 matrix object and provides matrix inversion and transforming of 2D and 3D points.

```
class FxMatrix44
```

## Overview> Important:
> FxMatrix44 stores its data in *row major* order, which is different from OpenGL.

## Topics

### Creating and Initializing a Matrix

[`init!()`](/documentation/professional_video_applications/FxMatrix44/init())

Initializes the matrix to the identity matrix.

[`init!(fxMatrix: FxMatrix44!)`](/documentation/professional_video_applications/FxMatrix44/init(fxMatrix:))

Initializes the matrix using the specified matrix object.

[`init!(matrix44Data: UnsafeMutablePointer<(Double, Double, Double, Double)>!)`](/documentation/professional_video_applications/FxMatrix44/init(matrix44Data:))

Initializes a matrix with the specified data.

[`init!(colorMatrix44Data: UnsafeMutablePointer<(Double, Double, Double, Double)>!)`](/documentation/professional_video_applications/FxMatrix44/init(colorMatrix44Data:))

### Getting and Setting the Matrix

[`func setMatrix(UnsafeMutablePointer<(Double, Double, Double, Double)>!)`](/documentation/professional_video_applications/FxMatrix44/setMatrix(_:))

Sets the matrix to the specified values.

[`func matrix() -> UnsafeMutablePointer<Matrix44Data>!`](/documentation/professional_video_applications/FxMatrix44/matrix())

Gets the raw matrix data.

[`func setToIdentity()`](/documentation/professional_video_applications/FxMatrix44/setToIdentity())

Sets the matrix to the identity matrix.

### Transforming the Matrix

[`func invert() -> Bool`](/documentation/professional_video_applications/FxMatrix44/invert())

Inverts the matrix if possible.

[`func invertColorMatrix(withTolerance: Double) -> Bool`](/documentation/professional_video_applications/FxMatrix44/invertColorMatrix(withTolerance:))

Inverts the matrix if possible.

[`func transpose()`](/documentation/professional_video_applications/FxMatrix44/transpose())

Transposes the matrix.

### Transforming Points Using the Matrix

[`func transform2DPoint(FxPoint2D) -> FxPoint2D`](/documentation/professional_video_applications/FxMatrix44/transform2DPoint(_:))

Transforms a 2D point using the matrix.

[`func transform3DPoint(FxPoint3D) -> FxPoint3D`](/documentation/professional_video_applications/FxMatrix44/transform3DPoint(_:))

Transforms a 3D point using the matrix.

### Constants

[`typealias Matrix44Data`](/documentation/professional_video_applications/Matrix44Data)

A matrix data type in the raw format.

### Initializers

[`init?(coder: NSCoder)`](/documentation/professional_video_applications/FxMatrix44/init(coder:))

## Relationships

### Conforms To

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

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

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

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

[`NSSecureCoding`](/documentation/Foundation/NSSecureCoding)

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

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`NSCoding`](/documentation/Foundation/NSCoding)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

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)