From b25dc566d4e4c5a76f50ab2a6c1faa1bfdc20694 Mon Sep 17 00:00:00 2001 From: Relintai Date: Sat, 27 May 2023 11:11:46 +0200 Subject: [PATCH] Also added an index operator method to Vector3. --- gdnative/vector3.cpp | 9 +++++++++ include/gdn/vector3.h | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gdnative/vector3.cpp b/gdnative/vector3.cpp index a4d9bfe..ed0a491 100644 --- a/gdnative/vector3.cpp +++ b/gdnative/vector3.cpp @@ -39,6 +39,15 @@ extern "C" { static_assert(sizeof(pandemonium_vector3) == sizeof(Vector3), "Vector3 size mismatch"); +pandemonium_real GDAPI *pandemonium_vector3_operator_index(pandemonium_vector3 *p_self, const pandemonium_int p_idx) { + Vector3 *self = (Vector3 *)p_self; + return (pandemonium_real *)&self->operator[](p_idx); +} +const pandemonium_real GDAPI *pandemonium_vector3_operator_index_const(const pandemonium_vector3 *p_self, const pandemonium_int p_idx) { + const Vector3 *self = (const Vector3 *)p_self; + return (const pandemonium_real *)&self->operator[](p_idx); +} + void GDAPI pandemonium_vector3_set_axis(pandemonium_vector3 *p_self, const pandemonium_vector3_axis p_axis, const pandemonium_real p_val) { Vector3 *self = (Vector3 *)p_self; self->set_axis(p_axis, p_val); diff --git a/include/gdn/vector3.h b/include/gdn/vector3.h index b1681ff..e600878 100644 --- a/include/gdn/vector3.h +++ b/include/gdn/vector3.h @@ -64,7 +64,8 @@ typedef enum { PANDEMONIUM_VECTOR3_AXIS_Z, } pandemonium_vector3_axis; -//TODO operator index +pandemonium_real GDAPI *pandemonium_vector3_operator_index(pandemonium_vector3 *p_self, const pandemonium_int p_idx); +const pandemonium_real GDAPI *pandemonium_vector3_operator_index_const(const pandemonium_vector3 *p_self, const pandemonium_int p_idx); void GDAPI pandemonium_vector3_set_axis(pandemonium_vector3 *p_self, const pandemonium_vector3_axis p_axis, const pandemonium_real p_val); pandemonium_real GDAPI pandemonium_vector3_get_axis(const pandemonium_vector3 *p_self, const pandemonium_vector3_axis p_axis);