Skip to content

Commit 86b67b1

Browse files
fix some matrix methid
it's weird because operator [][] couldnt set the element of the object, but soon i'll fix it
1 parent bb89b74 commit 86b67b1

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

3D/include/matrix.hxx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,22 +86,22 @@ class Mat {
8686
for (int row = 0; row < N; ++row)
8787
for (int col = 0; col < N; ++col)
8888
for (int k = 0; k < N; ++k)
89-
vals_res[row * N + col] += vals[row * N + k] * m.data()[k * N + col];
89+
vals_res[row * N + col] += vals[row * N + k] * m[k][col];
9090

9191
return Mat(vals_res);
9292
}
9393

9494
template <typename U>
9595
Mat operator+(const Mat<U, N> &m) const {
9696
T vals_res[N * N]{};
97-
for (int i = 0; i < N * N; ++i) vals_res[i] = vals[i] + m.data()[i];
97+
for (int i = 0; i < N * N; ++i) vals_res[i] = vals[i] + m[i / N][i % N];
9898
return Mat(vals_res);
9999
}
100100

101101
template <typename U>
102102
Mat operator-(const Mat<U, N> &m) const {
103103
T vals_res[N * N]{};
104-
for (int i = 0; i < N * N; ++i) vals_res[i] = vals[i] - m.data()[i];
104+
for (int i = 0; i < N * N; ++i) vals_res[i] = vals[i] - m[i / N][i % N];
105105
return Mat(vals_res);
106106
}
107107

@@ -204,7 +204,7 @@ class Mat {
204204

205205
return Mat(res);
206206
}
207-
const T *data() { return vals; }
207+
T *data() { return vals; }
208208
};
209209

210210
// usage Mat3<double> or Mat3<float>
@@ -231,7 +231,7 @@ Mat<T, 4> mat3_to_mat4(const Mat<T, 3> &m) {
231231
for (int i = 0; i < 16; ++i) {
232232
if ((i & 3) == 3 || (i >> 2) == 3) res_arr[i] = (i == 15) ? 1 : 0;
233233
else
234-
res_arr[i] = m.data()[(i & 3) * 3 + (i >> 2)];
234+
res_arr[i] = m[i >> 2][i & 3];
235235
}
236236
return Mat<T, 4>(res_arr);
237237
}

0 commit comments

Comments
 (0)