Browse Source

Split out `linalg.identity` between matrices and array-based matrix

gingerBill 1 year ago
parent
commit
900fe95ba0
1 changed files with 11 additions and 1 deletions
  1. 11 1
      core/math/linalg/general.odin

+ 11 - 1
core/math/linalg/general.odin

@@ -172,13 +172,23 @@ projection :: proc "contextless" (x, normal: $T/[$N]$E) -> T where IS_NUMERIC(E)
 }
 
 @(require_results)
-identity :: proc "contextless" ($T: typeid/[$N][N]$E) -> (m: T) #no_bounds_check {
+identity_array_based_matrix :: proc "contextless" ($T: typeid/[$N][N]$E) -> (m: T) #no_bounds_check {
 	for i in 0..<N {
 		m[i][i] = E(1)
 	}
 	return m
 }
 
+@(require_results)
+identity_matrix :: proc "contextless" ($T: typeid/matrix[$N, N]$E) -> T #no_bounds_check {
+	return 1
+}
+
+identity :: proc{
+	identity_array_based_matrix,
+	identity_matrix,
+}
+
 transpose :: intrinsics.transpose
 
 @(require_results)