add vec2.rotate
This commit is contained in:
parent
e064ace885
commit
77a340808e
@ -177,6 +177,12 @@ vec2.angle(v: vec2)
|
|||||||
|
|
||||||
-- returns the direction angle of the vector {x, y} in degrees [0, 360]
|
-- returns the direction angle of the vector {x, y} in degrees [0, 360]
|
||||||
vec2.angle(x: number, y: number)
|
vec2.angle(x: number, y: number)
|
||||||
|
|
||||||
|
-- returns the vector rotated by an angle in degrees counterclockwise
|
||||||
|
vec2.rotate(v: vec2, angle: number) -> vec2
|
||||||
|
|
||||||
|
-- writes the vector rotated by an angle in degrees counterclockwise to dst
|
||||||
|
vec2.rotate(v: vec2, angle: number, dst: vec2) -> vec2
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -177,6 +177,12 @@ vec2.angle(v: vec2)
|
|||||||
|
|
||||||
-- возвращает угол направления вектора {x, y} в градусах [0, 360]
|
-- возвращает угол направления вектора {x, y} в градусах [0, 360]
|
||||||
vec2.angle(x: number, y: number)
|
vec2.angle(x: number, y: number)
|
||||||
|
|
||||||
|
-- возвращает повернутый вектор на угол в градусах против часовой стрелки
|
||||||
|
vec2.rotate(v: vec2, angle: number) -> vec2
|
||||||
|
|
||||||
|
-- записывает повернутый вектор на угол в градусах против часовой стрелки в dst
|
||||||
|
vec2.rotate(v: vec2, angle: number, dst: vec2) -> vec2
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -183,6 +183,18 @@ static int l_vec2_angle(lua::State* L) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int l_vec2_rotate(lua::State* L) {
|
||||||
|
uint argc = lua::check_argc(L, 2, 3);
|
||||||
|
auto vec = lua::tovec<2, number_t>(L, 1);
|
||||||
|
auto angle = glm::radians(lua::tonumber(L, 2));
|
||||||
|
|
||||||
|
if (argc == 2) {
|
||||||
|
return lua::pushvec(L, glm::rotate(vec, angle));
|
||||||
|
} else {
|
||||||
|
return lua::setvec(L, 3, glm::rotate(vec, angle));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
template <int n>
|
template <int n>
|
||||||
static int l_tostring(lua::State* L) {
|
static int l_tostring(lua::State* L) {
|
||||||
lua::check_argc(L, 1);
|
lua::check_argc(L, 1);
|
||||||
@ -215,6 +227,7 @@ const luaL_Reg vec2lib[] = {
|
|||||||
{"dot", lua::wrap<l_dot<2>>},
|
{"dot", lua::wrap<l_dot<2>>},
|
||||||
{"angle", lua::wrap<l_vec2_angle>},
|
{"angle", lua::wrap<l_vec2_angle>},
|
||||||
{"mix", lua::wrap<l_mix<2>>},
|
{"mix", lua::wrap<l_mix<2>>},
|
||||||
|
{"rotate", lua::wrap<l_vec2_rotate>},
|
||||||
{NULL, NULL}};
|
{NULL, NULL}};
|
||||||
|
|
||||||
const luaL_Reg vec3lib[] = {
|
const luaL_Reg vec3lib[] = {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user