Added lookat

This commit is contained in:
Antoine Pilote
2023-07-12 16:10:20 -04:00
parent a466065ac6
commit 8a8db47f6c
4 changed files with 69 additions and 1 deletions

View File

@@ -40,6 +40,8 @@ namespace Nuake {
RegisterMethod("SetTranslation_(_,_,_,_)", (void*)SetTranslation);
RegisterMethod("GetRotation_(_)", (void*)GetRotation);
RegisterMethod("SetRotation_(_,_,_,_)", (void*)SetRotation);
RegisterMethod("SetLookAt_(_,_,_,_)", (void*)SetLookAt);
RegisterMethod("SetLightIntensity_(_,_)", (void*)SetLightIntensity);
RegisterMethod("GetLightIntensity_(_)", (void*)GetLightIntensity);
@@ -263,6 +265,20 @@ namespace Nuake {
transform.SetLocalRotation(QuatFromEuler(x, y, z));
}
static void SetLookAt(WrenVM* vm)
{
double handle = wrenGetSlotDouble(vm, 1);
Entity ent = Entity((entt::entity)handle, Engine::GetCurrentScene().get());
auto& transform = ent.GetComponent<TransformComponent>();
// set the slots
float x = (float)wrenGetSlotDouble(vm, 2);
float y = (float)wrenGetSlotDouble(vm, 3);
float z = (float)wrenGetSlotDouble(vm, 4);
Vector3 targetPosition = Vector3(x, y, z);
Quat rotation = LookAt(transform.GetGlobalPosition(), transform.GetGlobalPosition() + targetPosition);
transform.SetLocalRotation(rotation);
}
static void SetTranslation(WrenVM* vm)
{
double handle = wrenGetSlotDouble(vm, 1);