From 1a4e3372fa4abf80a56dccaa0d5ae729fccece0c Mon Sep 17 00:00:00 2001 From: Charlie Brej Date: Wed, 8 Jul 2009 10:06:25 +0100 Subject: [PATCH] [script] Add atan2 to the math library --- src/plugins/splash/script/script-lib-math.c | 26 ++++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/plugins/splash/script/script-lib-math.c b/src/plugins/splash/script/script-lib-math.c index 17070352..c698de0e 100644 --- a/src/plugins/splash/script/script-lib-math.c +++ b/src/plugins/splash/script/script-lib-math.c @@ -44,9 +44,18 @@ static script_return_t script_lib_math_float_from_float_function (script_state_t float (*function)(float) = user_data; float value = script_obj_hash_get_float (state->local, "value"); float reply_float = function (value); - return (script_return_t) { - SCRIPT_RETURN_TYPE_RETURN, script_obj_new_float (reply_float) - }; + return (script_return_t) {SCRIPT_RETURN_TYPE_RETURN, script_obj_new_float (reply_float)}; +} + + +static script_return_t script_lib_math_float_from_float_float_function (script_state_t *state, + void *user_data) +{ + float (*function)(float, float) = user_data; + float value1 = script_obj_hash_get_float (state->local, "value_a"); + float value2 = script_obj_hash_get_float (state->local, "value_b"); + float reply_float = function (value1, value2); + return (script_return_t) {SCRIPT_RETURN_TYPE_RETURN, script_obj_new_float (reply_float)}; } static script_return_t script_lib_math_int_from_float_function (script_state_t *state, @@ -55,9 +64,7 @@ static script_return_t script_lib_math_int_from_float_function (script_state_t * int (*function)(float) = user_data; float value = script_obj_hash_get_float (state->local, "value"); int reply_int = function (value); - return (script_return_t) { - SCRIPT_RETURN_TYPE_RETURN, script_obj_new_int (reply_int) - }; + return (script_return_t) {SCRIPT_RETURN_TYPE_RETURN, script_obj_new_int (reply_int)}; } static int float_to_int (float value) @@ -87,6 +94,13 @@ script_lib_math_data_t *script_lib_math_setup (script_state_t *state) tanf, "value", NULL); + script_add_native_function (state->global, + "MathATan2", + script_lib_math_float_from_float_float_function, + atan2f, + "value_a", + "value_b", + NULL); script_add_native_function (state->global, "MathSqrt", script_lib_math_float_from_float_function, -- 2.47.3