add mat4.determinant(...)

This commit is contained in:
MihailRis 2024-06-19 14:38:50 +03:00
parent 2395e05a01
commit bcbec562ac
3 changed files with 23 additions and 0 deletions

View File

@ -25,6 +25,13 @@ mat4.idt()
mat4.idt(dst: matrix)
```
## Matrix determinant - *mat4.determinant(...)*
```lua
-- calculates the determinant of the matrix
mat4.determinant(m: matrix)
```
## Matrix multiplication - *mat4.mul(...)*
```lua

View File

@ -25,6 +25,13 @@ mat4.idt()
mat4.idt(dst: matrix)
```
## Определитель матрицы - *mat4.determinant(...)*
```lua
-- вычисляет определитель матрицы
mat4.determinant(m: matrix)
```
## Умножение матриц - *mat4.mul(...)*
```lua

View File

@ -22,6 +22,14 @@ static int l_idt(lua::State* L) {
return 0;
}
/// mat4.determinant(matrix: float[16]) - calculates matrix determinant
static int l_determinant(lua::State* L) {
if (lua::gettop(L) != 1) {
throw std::runtime_error("invalid arguments number (1 expected)");
}
return lua::pushnumber(L, glm::determinant(lua::tomat4(L, 1)));
}
/// Overloads:
/// mat4.mul(m1: float[16], m2: float[16]) -> float[16] - creates matrix of m1 and m2 multiplication result
/// mat4.mul(m1: float[16], m2: float[16], dst: float[16]) -> float[16] - updates dst matrix with m1 and m2 multiplication result
@ -193,6 +201,7 @@ const luaL_Reg mat4lib [] = {
{"translate", lua::wrap<l_transform_func<glm::translate>>},
{"inverse", lua::wrap<l_inverse>},
{"transpose", lua::wrap<l_transpose>},
{"determinant", lua::wrap<l_determinant>},
{"tostring", lua::wrap<l_tostring>},
{NULL, NULL}
};