feat(scripting): add transform orientation overloads
This commit is contained in:
@@ -565,6 +565,23 @@ void InternalCall_Transform_Rotate(uint64_t gameObjectUUID, XCEngine::Math::Vect
|
||||
gameObject->GetTransform()->Rotate(*eulers, ResolveManagedSpace(relativeTo));
|
||||
}
|
||||
|
||||
void InternalCall_Transform_RotateAxisAngle(
|
||||
uint64_t gameObjectUUID,
|
||||
XCEngine::Math::Vector3* axis,
|
||||
float angle,
|
||||
int32_t relativeTo) {
|
||||
if (!axis) {
|
||||
return;
|
||||
}
|
||||
|
||||
Components::GameObject* gameObject = FindGameObjectByUUID(gameObjectUUID);
|
||||
if (!gameObject || !gameObject->GetTransform()) {
|
||||
return;
|
||||
}
|
||||
|
||||
gameObject->GetTransform()->Rotate(*axis, angle, ResolveManagedSpace(relativeTo));
|
||||
}
|
||||
|
||||
void InternalCall_Transform_LookAt(uint64_t gameObjectUUID, XCEngine::Math::Vector3* target) {
|
||||
if (!target) {
|
||||
return;
|
||||
@@ -578,6 +595,22 @@ void InternalCall_Transform_LookAt(uint64_t gameObjectUUID, XCEngine::Math::Vect
|
||||
gameObject->GetTransform()->LookAt(*target);
|
||||
}
|
||||
|
||||
void InternalCall_Transform_LookAtWithUp(
|
||||
uint64_t gameObjectUUID,
|
||||
XCEngine::Math::Vector3* target,
|
||||
XCEngine::Math::Vector3* up) {
|
||||
if (!target || !up) {
|
||||
return;
|
||||
}
|
||||
|
||||
Components::GameObject* gameObject = FindGameObjectByUUID(gameObjectUUID);
|
||||
if (!gameObject || !gameObject->GetTransform()) {
|
||||
return;
|
||||
}
|
||||
|
||||
gameObject->GetTransform()->LookAt(*target, *up);
|
||||
}
|
||||
|
||||
void InternalCall_Transform_TransformPoint(uint64_t gameObjectUUID, XCEngine::Math::Vector3* point, XCEngine::Math::Vector3* outPoint) {
|
||||
if (!point || !outPoint) {
|
||||
return;
|
||||
@@ -831,7 +864,9 @@ void RegisterInternalCalls() {
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Transform_GetUp", reinterpret_cast<const void*>(&InternalCall_Transform_GetUp));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Transform_Translate", reinterpret_cast<const void*>(&InternalCall_Transform_Translate));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Transform_Rotate", reinterpret_cast<const void*>(&InternalCall_Transform_Rotate));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Transform_RotateAxisAngle", reinterpret_cast<const void*>(&InternalCall_Transform_RotateAxisAngle));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Transform_LookAt", reinterpret_cast<const void*>(&InternalCall_Transform_LookAt));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Transform_LookAtWithUp", reinterpret_cast<const void*>(&InternalCall_Transform_LookAtWithUp));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Transform_TransformPoint", reinterpret_cast<const void*>(&InternalCall_Transform_TransformPoint));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Transform_InverseTransformPoint", reinterpret_cast<const void*>(&InternalCall_Transform_InverseTransformPoint));
|
||||
mono_add_internal_call("XCEngine.InternalCalls::Transform_TransformDirection", reinterpret_cast<const void*>(&InternalCall_Transform_TransformDirection));
|
||||
|
||||
Reference in New Issue
Block a user