refactor matrix constants

This commit is contained in:
Paul Zabelin
2016-02-21 03:48:43 -08:00
parent 21d8ca6d94
commit 044e8dfbcf
2 changed files with 14 additions and 13 deletions

View File

@@ -10,21 +10,21 @@ import QuartzCore
import simd
extension CATransform3D {
static let addColumn : float4x3 = {
var m = float4x3(diagonal:float3(1,1,0))
m[3,2] = 1
return m
}()
static let addRow : float3x4 = {
var m = float3x4(diagonal:float3(1,1,0))
m[2,3] = 1
return m
}()
init(_ m: float3x3) {
var addColumn = float4x3()
addColumn[0,0] = 1
addColumn[1,1] = 1
addColumn[3,2] = 1
var addRow = float3x4()
addRow[0,0] = 1
addRow[1,1] = 1
addRow[2,3] = 1
var result = addRow * m * addColumn
var result = CATransform3D.addRow * m * CATransform3D.addColumn
result[2,2] = 1
self.init(result)
}
}

1
Pod/add-column.txt Normal file
View File

@@ -0,0 +1 @@
\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}=\begin{bmatrix} 1 \\ 1 \\ 1 \end{bmatrix}\times \begin{bmatrix} 1 & 1 & 0 & 1 \end{bmatrix}