8
8
9
9
public extension Matrix4x4f {
10
10
/// Returns the identity matrix
11
- public static let identity = Matrix4x4f ( diagonal: vec4 ( 1.0 ) )
11
+ static let identity = Matrix4x4f ( diagonal: vec4 ( 1.0 ) )
12
12
13
13
/// Creates a new instance from the values provided in row-major order
14
- public init (
14
+ init (
15
15
_ m00: Float , _ m01: Float , _ m02: Float , _ m03: Float ,
16
16
_ m10: Float , _ m11: Float , _ m12: Float , _ m13: Float ,
17
17
_ m20: Float , _ m21: Float , _ m22: Float , _ m23: Float ,
@@ -26,11 +26,11 @@ public extension Matrix4x4f {
26
26
27
27
//MARK: matrix operations
28
28
29
- public static func lookAt( eye: Vector3f , at: Vector3f , up: Vector3f = Vector3f ( 0.0 , 1.0 , 0.0 ) ) -> Matrix4x4f {
29
+ static func lookAt( eye: Vector3f , at: Vector3f , up: Vector3f = Vector3f ( 0.0 , 1.0 , 0.0 ) ) -> Matrix4x4f {
30
30
return lookAtLH ( eye: eye, at: at, up: up)
31
31
}
32
32
33
- public static func lookAtLH( eye: Vector3f , at: Vector3f , up: Vector3f ) -> Matrix4x4f {
33
+ static func lookAtLH( eye: Vector3f , at: Vector3f , up: Vector3f ) -> Matrix4x4f {
34
34
let view = ( at - eye) . normalized
35
35
return lookAt ( eye: eye, view: view, up: up)
36
36
}
@@ -48,14 +48,14 @@ public extension Matrix4x4f {
48
48
}
49
49
50
50
/// Creates a left-handed perspective projection matrix
51
- public static func proj( fovy: Angle , aspect: Float , near: Float , far: Float ) -> Matrix4x4f {
51
+ static func proj( fovy: Angle , aspect: Float , near: Float , far: Float ) -> Matrix4x4f {
52
52
let height = 1.0 / tan( fovy * 0.5 )
53
53
let width = height * 1.0 / aspect;
54
54
return projLH ( x: 0 , y: 0 , w: width, h: height, near: near, far: far)
55
55
}
56
56
57
57
/// Creates a left-handed perspective projection matrix
58
- public static func projLH( x: Float , y: Float , w: Float , h: Float , near: Float , far: Float ) -> Matrix4x4f {
58
+ static func projLH( x: Float , y: Float , w: Float , h: Float , near: Float , far: Float ) -> Matrix4x4f {
59
59
let diff = far - near
60
60
let aa = far / diff
61
61
let bb = near * aa
@@ -73,7 +73,7 @@ public extension Matrix4x4f {
73
73
}
74
74
75
75
/// Creates a right-handed perspective projection matrix
76
- public static func projRH( x: Float , y: Float , w: Float , h: Float , near: Float , far: Float ) -> Matrix4x4f {
76
+ static func projRH( x: Float , y: Float , w: Float , h: Float , near: Float , far: Float ) -> Matrix4x4f {
77
77
let diff = far - near
78
78
let aa = far / diff
79
79
let bb = near * aa
@@ -91,12 +91,12 @@ public extension Matrix4x4f {
91
91
}
92
92
93
93
/// Creates a left-handed orthographic projection matrix
94
- public static func ortho( left: Float , right: Float , bottom: Float , top: Float , near: Float , far: Float ) -> Matrix4x4f {
94
+ static func ortho( left: Float , right: Float , bottom: Float , top: Float , near: Float , far: Float ) -> Matrix4x4f {
95
95
return orthoLH ( left: left, right: right, bottom: bottom, top: top, near: near, far: far)
96
96
}
97
97
98
98
/// Creates a left-handed orthographic projection matrix
99
- public static func orthoLH( left: Float , right: Float , bottom: Float , top: Float , near: Float , far: Float , offset: Float = 0.0 ) -> Matrix4x4f {
99
+ static func orthoLH( left: Float , right: Float , bottom: Float , top: Float , near: Float , far: Float , offset: Float = 0.0 ) -> Matrix4x4f {
100
100
let aa = 2.0 / ( right - left)
101
101
let bb = 2.0 / ( top - bottom)
102
102
let cc = 1.0 / ( far - near)
@@ -117,7 +117,7 @@ public extension Matrix4x4f {
117
117
}
118
118
119
119
/// Creates a right-handed orthographic projection matrix
120
- public static func orthoRH( left: Float , right: Float , bottom: Float , top: Float , near: Float , far: Float , offset: Float = 0.0 ) -> Matrix4x4f {
120
+ static func orthoRH( left: Float , right: Float , bottom: Float , top: Float , near: Float , far: Float , offset: Float = 0.0 ) -> Matrix4x4f {
121
121
let aa = 2.0 / ( right - left)
122
122
let bb = 2.0 / ( top - bottom)
123
123
let cc = 1.0 / ( far - near)
@@ -139,11 +139,11 @@ public extension Matrix4x4f {
139
139
140
140
//MARK: matrix operations
141
141
142
- public static func scale( sx: Float , sy: Float , sz: Float ) -> Matrix4x4f {
142
+ static func scale( sx: Float , sy: Float , sz: Float ) -> Matrix4x4f {
143
143
return Matrix4x4f ( diagonal: vec4 ( sx, sy, sz, 1.0 ) )
144
144
}
145
145
146
- public static func translate( tx: Float , ty: Float , tz: Float ) -> Matrix4x4f {
146
+ static func translate( tx: Float , ty: Float , tz: Float ) -> Matrix4x4f {
147
147
return Matrix4x4f (
148
148
vec4 ( 1.0 , 0.0 , 0.0 , 0.0 ) ,
149
149
vec4 ( 0.0 , 1.0 , 0.0 , 0.0 ) ,
@@ -158,7 +158,7 @@ public extension Matrix4x4f {
158
158
/// - parameter x: angle
159
159
///
160
160
/// - returns: a new rotation matrix
161
- public static func rotate( x: Angle ) -> Matrix4x4f {
161
+ static func rotate( x: Angle ) -> Matrix4x4f {
162
162
let ( sin: sx, cos: cx) = sincos ( x)
163
163
164
164
var r = Matrix4x4f ( )
@@ -173,7 +173,7 @@ public extension Matrix4x4f {
173
173
}
174
174
175
175
/// Returns a transformation matrix that rotates around the y axis
176
- public static func rotate( y: Angle ) -> Matrix4x4f {
176
+ static func rotate( y: Angle ) -> Matrix4x4f {
177
177
let ( sin: sy, cos: cy) = sincos ( y)
178
178
179
179
var r = Matrix4x4f ( )
@@ -188,7 +188,7 @@ public extension Matrix4x4f {
188
188
}
189
189
190
190
/// Returns a transformation matrix that rotates around the z axis
191
- public static func rotate( z: Angle ) -> Matrix4x4f {
191
+ static func rotate( z: Angle ) -> Matrix4x4f {
192
192
let ( sin: sz, cos: cz) = sincos ( z)
193
193
194
194
var r = Matrix4x4f ( )
@@ -203,7 +203,7 @@ public extension Matrix4x4f {
203
203
}
204
204
205
205
/// Returns a transformation matrix that rotates around the x and then y axes
206
- public static func rotate( x: Angle , y: Angle ) -> Matrix4x4f {
206
+ static func rotate( x: Angle , y: Angle ) -> Matrix4x4f {
207
207
let ( sin: sx, cos: cx) = sincos ( x)
208
208
let ( sin: sy, cos: cy) = sincos ( y)
209
209
@@ -216,7 +216,7 @@ public extension Matrix4x4f {
216
216
}
217
217
218
218
/// Returns a transformation matrix that rotates around the x, y and then z axes
219
- public static func rotate( x: Angle , y: Angle , z: Angle ) -> Matrix4x4f {
219
+ static func rotate( x: Angle , y: Angle , z: Angle ) -> Matrix4x4f {
220
220
let ( sin: sx, cos: cx) = sincos ( x)
221
221
let ( sin: sy, cos: cy) = sincos ( y)
222
222
let ( sin: sz, cos: cz) = sincos ( z)
@@ -237,7 +237,7 @@ public extension Matrix4x4f {
237
237
}
238
238
239
239
/// Returns a transformation matrix that rotates around the z, y and then x axes
240
- public static func rotate( z: Angle , y: Angle , x: Angle ) -> Matrix4x4f {
240
+ static func rotate( z: Angle , y: Angle , x: Angle ) -> Matrix4x4f {
241
241
let ( sin: sx, cos: cx) = sincos ( x)
242
242
let ( sin: sy, cos: cy) = sincos ( y)
243
243
let ( sin: sz, cos: cz) = sincos ( z)
@@ -258,7 +258,7 @@ public extension Matrix4x4f {
258
258
}
259
259
260
260
/// Returns a transformation matrix which can be used to scale, rotate and translate vectors
261
- public static func scaleRotateTranslate( sx _sx: Float , sy _sy: Float , sz _sz: Float ,
261
+ static func scaleRotateTranslate( sx _sx: Float , sy _sy: Float , sz _sz: Float ,
262
262
ax: Angle , ay: Angle , az: Angle ,
263
263
tx: Float , ty: Float , tz: Float ) -> Matrix4x4f {
264
264
let ( sin: sx, cos: cx) = sincos ( ax)
0 commit comments