@@ -85,6 +85,12 @@ data class Mat2(
85
85
operator fun minus (v : Float ) = Mat2 (x - v, y - v)
86
86
operator fun times (v : Float ) = Mat2 (x * v, y * v)
87
87
operator fun div (v : Float ) = Mat2 (x / v, y / v)
88
+ inline fun compareTo (v : Float , delta : Float = 0.0f) = Mat2 (
89
+ x.compareTo(v, delta),
90
+ y.compareTo(v, delta)
91
+ )
92
+
93
+ inline fun equals (v : Float , delta : Float = 0.0f) = x.equals(v, delta) && y.equals(v, delta)
88
94
89
95
operator fun times (m : Mat2 ) = Mat2 (
90
96
Float2 (
@@ -97,12 +103,18 @@ data class Mat2(
97
103
)
98
104
)
99
105
106
+ inline fun compareTo (m : Mat2 , delta : Float = 0.0f) = Mat2 (
107
+ x.compareTo(m.x, delta),
108
+ y.compareTo(m.y, delta)
109
+ )
110
+
111
+ inline fun equals (m : Mat2 , delta : Float = 0.0f) = x.equals(m.x, delta) && y.equals(m.y, delta)
112
+
100
113
operator fun times (v : Float2 ) = Float2 (
101
114
x.x * v.x + y.x * v.y,
102
115
x.y * v.x + y.y * v.y,
103
116
)
104
117
105
-
106
118
fun toFloatArray () = floatArrayOf(
107
119
x.x, y.x,
108
120
x.y, y.y
@@ -114,7 +126,6 @@ data class Mat2(
114
126
|${x.y} ${y.y} |
115
127
""" .trimIndent()
116
128
}
117
-
118
129
}
119
130
120
131
data class Mat3 (
@@ -170,6 +181,14 @@ data class Mat3(
170
181
operator fun minus (v : Float ) = Mat3 (x - v, y - v, z - v)
171
182
operator fun times (v : Float ) = Mat3 (x * v, y * v, z * v)
172
183
operator fun div (v : Float ) = Mat3 (x / v, y / v, z / v)
184
+ inline fun compareTo (v : Float , delta : Float = 0.0f) = Mat3 (
185
+ x.compareTo(v, delta),
186
+ y.compareTo(v, delta),
187
+ z.compareTo(v, delta)
188
+ )
189
+
190
+ inline fun equals (v : Float , delta : Float = 0.0f) =
191
+ x.equals(v, delta) && y.equals(v, delta) && z.equals(v, delta)
173
192
174
193
operator fun times (m : Mat3 ) = Mat3 (
175
194
Float3 (
@@ -189,6 +208,15 @@ data class Mat3(
189
208
)
190
209
)
191
210
211
+ inline fun compareTo (m : Mat3 , delta : Float = 0.0f) = Mat3 (
212
+ x.compareTo(m.x, delta),
213
+ y.compareTo(m.y, delta),
214
+ z.compareTo(m.z, delta)
215
+ )
216
+
217
+ inline fun equals (m : Mat3 , delta : Float = 0.0f) =
218
+ x.equals(m.x, delta) && y.equals(m.y, delta) && z.equals(m.z, delta)
219
+
192
220
operator fun times (v : Float3 ) = Float3 (
193
221
x.x * v.x + y.x * v.y + z.x * v.z,
194
222
x.y * v.x + y.y * v.y + z.y * v.z,
@@ -311,6 +339,15 @@ data class Mat4(
311
339
operator fun minus (v : Float ) = Mat4 (x - v, y - v, z - v, w - v)
312
340
operator fun times (v : Float ) = Mat4 (x * v, y * v, z * v, w * v)
313
341
operator fun div (v : Float ) = Mat4 (x / v, y / v, z / v, w / v)
342
+ inline fun compareTo (v : Float , delta : Float = 0.0f) = Mat4 (
343
+ x.compareTo(v, delta),
344
+ y.compareTo(v, delta),
345
+ z.compareTo(v, delta),
346
+ w.compareTo(v, delta)
347
+ )
348
+
349
+ inline fun equals (v : Float , delta : Float = 0.0f) =
350
+ x.equals(v, delta) && y.equals(v, delta) && z.equals(v, delta) && w.equals(v, delta)
314
351
315
352
operator fun times (m : Mat4 ) = Mat4 (
316
353
Float4 (
@@ -339,6 +376,16 @@ data class Mat4(
339
376
)
340
377
)
341
378
379
+ inline fun compareTo (m : Mat4 , delta : Float = 0.0f) = Mat4 (
380
+ x.compareTo(m.x, delta),
381
+ y.compareTo(m.y, delta),
382
+ z.compareTo(m.z, delta),
383
+ w.compareTo(m.w, delta)
384
+ )
385
+
386
+ inline fun equals (m : Mat4 , delta : Float = 0.0f) =
387
+ x.equals(m.x, delta) && y.equals(m.y, delta) && z.equals(m.z, delta) && w.equals(m.w, delta)
388
+
342
389
operator fun times (v : Float4 ) = Float4 (
343
390
x.x * v.x + y.x * v.y + z.x * v.z+ w.x * v.w,
344
391
x.y * v.x + y.y * v.y + z.y * v.z+ w.y * v.w,
@@ -385,6 +432,78 @@ data class Mat4(
385
432
}
386
433
}
387
434
435
+ inline fun equal (a : Mat2 , b : Float , delta : Float = 0.0f) = Bool2 (
436
+ a.x.equals(b, delta),
437
+ a.y.equals(b, delta)
438
+ )
439
+
440
+ inline fun equal (a : Mat2 , b : Mat2 , delta : Float = 0.0f) = Bool2 (
441
+ a.x.equals(b.x, delta),
442
+ a.y.equals(b.y, delta)
443
+ )
444
+
445
+ inline fun notEqual (a : Mat2 , b : Float , delta : Float = 0.0f) = Bool2 (
446
+ ! a.x.equals(b, delta),
447
+ ! a.y.equals(b, delta)
448
+ )
449
+
450
+ inline fun notEqual (a : Mat2 , b : Mat2 , delta : Float = 0.0f) = Bool2 (
451
+ ! a.x.equals(b.x, delta),
452
+ ! a.y.equals(b.y, delta)
453
+ )
454
+
455
+ inline fun equal (a : Mat3 , b : Float , delta : Float = 0.0f) = Bool3 (
456
+ a.x.equals(b, delta),
457
+ a.y.equals(b, delta),
458
+ a.z.equals(b, delta)
459
+ )
460
+
461
+ inline fun equal (a : Mat3 , b : Mat3 , delta : Float = 0.0f) = Bool3 (
462
+ a.x.equals(b.x, delta),
463
+ a.y.equals(b.y, delta),
464
+ a.z.equals(b.z, delta)
465
+ )
466
+
467
+ inline fun notEqual (a : Mat3 , b : Float , delta : Float = 0.0f) = Bool3 (
468
+ ! a.x.equals(b, delta),
469
+ ! a.y.equals(b, delta),
470
+ ! a.z.equals(b, delta)
471
+ )
472
+
473
+ inline fun notEqual (a : Mat3 , b : Mat3 , delta : Float = 0.0f) = Bool3 (
474
+ ! a.x.equals(b.x, delta),
475
+ ! a.y.equals(b.y, delta),
476
+ ! a.z.equals(b.z, delta)
477
+ )
478
+
479
+ inline fun equal (a : Mat4 , b : Float , delta : Float = 0.0f) = Bool4 (
480
+ a.x.equals(b, delta),
481
+ a.y.equals(b, delta),
482
+ a.z.equals(b, delta),
483
+ a.w.equals(b, delta)
484
+ )
485
+
486
+ inline fun equal (a : Mat4 , b : Mat4 , delta : Float = 0.0f) = Bool4 (
487
+ a.x.equals(b.x, delta),
488
+ a.y.equals(b.y, delta),
489
+ a.z.equals(b.z, delta),
490
+ a.w.equals(b.w, delta)
491
+ )
492
+
493
+ inline fun notEqual (a : Mat4 , b : Float , delta : Float = 0.0f) = Bool4 (
494
+ ! a.x.equals(b, delta),
495
+ ! a.y.equals(b, delta),
496
+ ! a.z.equals(b, delta),
497
+ ! a.w.equals(b, delta)
498
+ )
499
+
500
+ inline fun notEqual (a : Mat4 , b : Mat4 , delta : Float = 0.0f) = Bool4 (
501
+ ! a.x.equals(b.x, delta),
502
+ ! a.y.equals(b.y, delta),
503
+ ! a.z.equals(b.z, delta),
504
+ ! a.w.equals(b.w, delta)
505
+ )
506
+
388
507
fun transpose (m : Mat2 ) = Mat2 (
389
508
Float2 (m.x.x, m.y.x),
390
509
Float2 (m.x.y, m.y.y)
0 commit comments