Unravel Engine C++ Reference
Loading...
Searching...
No Matches
math_bindings.cpp
Go to the documentation of this file.
2#include "script_bindings.h"
3
4#include "../script_interop.h"
5
6namespace unravel
7{
8namespace
9{
10
11
12auto internal_m2n_from_euler_rad(const math::vec3& euler) -> math::quat
13{
14 return {euler};
15}
16
17auto internal_m2n_to_euler_rad(const math::quat& euler) -> math::vec3
18{
19 return math::eulerAngles(euler);
20}
21
22auto internal_m2n_angle_axis(float angle, const math::vec3& axis) -> math::quat
23{
24 return math::angleAxis(angle, axis);
25}
26
27auto internal_m2n_look_rotation(const math::vec3& forward, const math::vec3& up) -> math::quat
28{
29 return math::look_rotation(forward, up);
30}
31
32auto internal_m2n_from_to_rotation(const math::vec3& from, const math::vec3& to) -> math::quat
33{
34 return math::from_to_rotation(from, to);
35}
36
37} // namespace
38
40{
41 APPLOG_TRACE("{}", __func__);
42
43 auto reg = dotnet::internal_call_registry("Quaternion");
44 reg.add_internal_call("internal_m2n_from_euler_rad", dotnet_internal_call(internal_m2n_from_euler_rad));
45 reg.add_internal_call("internal_m2n_to_euler_rad", dotnet_internal_call(internal_m2n_to_euler_rad));
46 reg.add_internal_call("internal_m2n_from_to_rotation", dotnet_internal_call(internal_m2n_from_to_rotation));
47 reg.add_internal_call("internal_m2n_angle_axis", dotnet_internal_call(internal_m2n_angle_axis));
48 reg.add_internal_call("internal_m2n_look_rotation", dotnet_internal_call(internal_m2n_look_rotation));
49}
50
51} // namespace unravel
#define APPLOG_TRACE(...)
Definition logging.h:17
auto look_rotation(const glm::vec3 &forward, const glm::vec3 &upwards) -> glm::quat
auto from_to_rotation(const glm::vec3 &from, const glm::vec3 &to) -> glm::quat
void register_math_script_bindings()