---
title: GLKMatrix3
framework: GLKit
role: collectionGroup
role_heading: API Collection
path: glkit/glkmatrix3-pcl
---

# GLKMatrix3

## Overview

Overview The GLKMatrix3 type defines a 3x3 floating-point matrix as well as many mathematical operations commonly used to manipulate matrices. A 3x3 matrix is commonly used in graphics programming to represent scaling or rotation transformations to convert from one coordinate system to another. The functions that manipulate GLKMatrix3 structures treat the inputs as immutable, instead returning a new matrix that represent the results of the operation.

## Topics

### Creating Matrices

- [GLKMatrix3Make(_:_:_:_:_:_:_:_:_:)](glkit/glkmatrix3make(_:_:_:_:_:_:_:_:_:).md)
- [GLKMatrix3MakeAndTranspose(_:_:_:_:_:_:_:_:_:)](glkit/glkmatrix3makeandtranspose(_:_:_:_:_:_:_:_:_:).md)
- [GLKMatrix3MakeWithArray(_:)](glkit/glkmatrix3makewitharray(_:).md)
- [GLKMatrix3MakeWithArrayAndTranspose(_:)](glkit/glkmatrix3makewitharrayandtranspose(_:).md)
- [GLKMatrix3MakeWithColumns(_:_:_:)](glkit/glkmatrix3makewithcolumns(_:_:_:).md)
- [GLKMatrix3MakeWithRows(_:_:_:)](glkit/glkmatrix3makewithrows(_:_:_:).md)
- [GLKMatrix3MakeRotation(_:_:_:_:)](glkit/glkmatrix3makerotation(_:_:_:_:).md)
- [GLKMatrix3MakeXRotation(_:)](glkit/glkmatrix3makexrotation(_:).md)
- [GLKMatrix3MakeYRotation(_:)](glkit/glkmatrix3makeyrotation(_:).md)
- [GLKMatrix3MakeZRotation(_:)](glkit/glkmatrix3makezrotation(_:).md)
- [GLKMatrix3MakeWithQuaternion(_:)](glkit/glkmatrix3makewithquaternion(_:).md)
- [GLKMatrix3MakeScale(_:_:_:)](glkit/glkmatrix3makescale(_:_:_:).md)

### Working With Parts of a Matrix

- [GLKMatrix3GetMatrix2(_:)](glkit/glkmatrix3getmatrix2(_:).md)
- [GLKMatrix3GetColumn(_:_:)](glkit/glkmatrix3getcolumn(_:_:).md)
- [GLKMatrix3GetRow(_:_:)](glkit/glkmatrix3getrow(_:_:).md)
- [GLKMatrix3SetColumn(_:_:_:)](glkit/glkmatrix3setcolumn(_:_:_:).md)
- [GLKMatrix3SetRow(_:_:_:)](glkit/glkmatrix3setrow(_:_:_:).md)

### Performing Mathematical Operations on Matrices

- [GLKMatrix3Invert(_:_:)](glkit/glkmatrix3invert(_:_:).md)
- [GLKMatrix3Transpose(_:)](glkit/glkmatrix3transpose(_:).md)
- [GLKMatrix3InvertAndTranspose(_:_:)](glkit/glkmatrix3invertandtranspose(_:_:).md)
- [GLKMatrix3Multiply(_:_:)](glkit/glkmatrix3multiply(_:_:).md)
- [GLKMatrix3Rotate(_:_:_:_:_:)](glkit/glkmatrix3rotate(_:_:_:_:_:).md)
- [GLKMatrix3RotateWithVector3(_:_:_:)](glkit/glkmatrix3rotatewithvector3(_:_:_:).md)
- [GLKMatrix3RotateWithVector4(_:_:_:)](glkit/glkmatrix3rotatewithvector4(_:_:_:).md)
- [GLKMatrix3RotateX(_:_:)](glkit/glkmatrix3rotatex(_:_:).md)
- [GLKMatrix3RotateY(_:_:)](glkit/glkmatrix3rotatey(_:_:).md)
- [GLKMatrix3RotateZ(_:_:)](glkit/glkmatrix3rotatez(_:_:).md)
- [GLKMatrix3Scale(_:_:_:_:)](glkit/glkmatrix3scale(_:_:_:_:).md)
- [GLKMatrix3ScaleWithVector3(_:_:)](glkit/glkmatrix3scalewithvector3(_:_:).md)
- [GLKMatrix3ScaleWithVector4(_:_:)](glkit/glkmatrix3scalewithvector4(_:_:).md)
- [GLKMatrix3Add(_:_:)](glkit/glkmatrix3add(_:_:).md)
- [GLKMatrix3Subtract(_:_:)](glkit/glkmatrix3subtract(_:_:).md)

### Performing Mathematical Operations on Vectors

- [GLKMatrix3MultiplyVector3(_:_:)](glkit/glkmatrix3multiplyvector3(_:_:).md)
- [GLKMatrix3MultiplyVector3Array(_:_:_:)](glkit/glkmatrix3multiplyvector3array(_:_:_:).md)

### Data Types

- [GLKMatrix2](glkit/glkmatrix2.md)
- [GLKMatrix3](glkit/glkmatrix3.md)

### Constants

- [GLKMatrix3Identity](glkit/glkmatrix3identity.md)

## See Also

### Math Utilties

- [GLKMatrixStack](glkit/glkmatrixstack.md)
- [GLKMatrix4](glkit/glkmatrix4-pce.md)
- [GLKVector2](glkit/glkvector2-pbj.md)
- [GLKVector3](glkit/glkvector3-pbt.md)
- [GLKVector4](glkit/glkvector4-pbk.md)
- [GLKQuaternion](glkit/glkquaternion-pc6.md)
- [GLKit Math Utilities](glkit/glkit-math-utilities.md)
