22#include " Wren.h"
33
44#include < wren.h>
5+ #include < imgui/imgui.h>
56
67#include " OverEngine/Input/Input.h"
78#include " OverEngine/Scene/Entity.h"
@@ -21,10 +22,10 @@ namespace OverEngine
2122{
2223 namespace WrenBindings
2324 {
24- #define WREN_INPUT (name, wrenParams, nativeCallParams ) \
25- auto Input_##name(wrenParams) \
26- { \
27- return Input::name (nativeCallParams); \
25+ #define WREN_INPUT (name, wrenParams, nativeCallParams ) \
26+ auto Input_##name(wrenParams) \
27+ { \
28+ return Input::name (nativeCallParams); \
2829 }
2930
3031 WREN_INPUT (IsKeyPressed, int keycode, (KeyCode)keycode)
@@ -33,7 +34,22 @@ namespace OverEngine
3334 WREN_INPUT (GetMouseX,,)
3435 WREN_INPUT (GetMouseY,,)
3536
36- #define WREN_COMPONENT_HAS (component ) \
37+ bool ImGui_begin (const char * name)
38+ {
39+ return ImGui::Begin (name);
40+ }
41+
42+ void ImGui_end ()
43+ {
44+ ImGui::End ();
45+ }
46+
47+ void ImGui_text (const char * text)
48+ {
49+ ImGui::TextUnformatted (text);
50+ }
51+
52+ #define WREN_COMPONENT_HAS (component ) \
3753 bool component##_has(Entity& entity) \
3854 { \
3955 return entity.HasComponent <component>(); \
@@ -63,6 +79,16 @@ namespace OverEngine
6379 entity.GetComponent <TransformComponent>().SetPosition (position);
6480 }
6581
82+ Vector3 TransformComponent_eulerAngles (Entity& entity)
83+ {
84+ return entity.GetComponent <TransformComponent>().GetEulerAngles ();
85+ }
86+
87+ void TransformComponent_set_eulerAngles (Entity& entity, const Vector3& eulerAngles)
88+ {
89+ entity.GetComponent <TransformComponent>().SetEulerAngles (eulerAngles);
90+ }
91+
6692 void RigidBody2DComponent_applyLinearImpulseToCenter (Entity& entity, const Vector2& impulse)
6793 {
6894 entity.GetComponent <RigidBody2DComponent>().RigidBody ->ApplyLinearImpulseToCenter (impulse);
@@ -94,6 +120,15 @@ namespace OverEngine
94120 .endClass ()
95121 .endModule ();
96122
123+ m_VM.beginModule (" imgui" )
124+ .beginClass (" ImGui" )
125+ WRENPP_BIND_STATIC (ImGui_begin, " begin(_)" )
126+ WRENPP_BIND_STATIC (ImGui_end, " end()" )
127+
128+ WRENPP_BIND_STATIC (ImGui_text, " text(_)" )
129+ .endClass ()
130+ .endModule ();
131+
97132 m_VM.beginModule (" entity" )
98133 .bindClass <Entity>(" Entity" )
99134 .endClass ()
@@ -106,6 +141,8 @@ namespace OverEngine
106141
107142 WRENPP_BIND_STATIC_EXACT (TransformComponent_position, " _" )
108143 WRENPP_BIND_STATIC_EXACT (TransformComponent_set_position, " _,_" )
144+ WRENPP_BIND_STATIC_EXACT (TransformComponent_eulerAngles, " _" )
145+ WRENPP_BIND_STATIC_EXACT (TransformComponent_set_eulerAngles, " _,_" )
109146
110147 WRENPP_BIND_STATIC_EXACT (RigidBody2DComponent_applyLinearImpulseToCenter, " _,_" )
111148 .endClass ()
0 commit comments