From 73e77dff26d67cd6668f10e54f45523605fb41a5 Mon Sep 17 00:00:00 2001 From: Bruno Dilly Date: Fri, 10 Aug 2012 21:03:57 +0000 Subject: [PATCH] EPhysics: fix sleeping threshold getter SVN revision: 75143 --- legacy/ephysics/src/bin/test_sleeping_threshold.c | 6 ++++++ legacy/ephysics/src/lib/EPhysics.h | 26 ++++++----------------- legacy/ephysics/src/lib/ephysics_body.cpp | 24 +++++++-------------- 3 files changed, 21 insertions(+), 35 deletions(-) diff --git a/legacy/ephysics/src/bin/test_sleeping_threshold.c b/legacy/ephysics/src/bin/test_sleeping_threshold.c index 5f99335..f9682ee 100644 --- a/legacy/ephysics/src/bin/test_sleeping_threshold.c +++ b/legacy/ephysics/src/bin/test_sleeping_threshold.c @@ -9,6 +9,7 @@ _world_populate(Test_Data *test_data) { Evas_Object *sphere1, *sphere2, *sh1, *sh2; EPhysics_Body *sphere_body1, *sphere_body2; + double linear, angular; sh1 = elm_layout_add(test_data->win); elm_layout_file_set( @@ -65,6 +66,11 @@ _world_populate(Test_Data *test_data) ephysics_body_linear_velocity_set(sphere_body2, -100, 0); ephysics_body_damping_set(sphere_body2, 0.5, 0.5); test_data->bodies = eina_list_append(test_data->bodies, sphere_body2); + + ephysics_body_sleeping_threshold_get(sphere_body1, &linear, &angular); + INF("Body 1: linear threshold: %.2f, angular: %.2f", linear, angular); + ephysics_body_sleeping_threshold_get(sphere_body2, &linear, &angular); + INF("Body 2: linear threshold: %.2f, angular: %.2f", linear, angular); } static void diff --git a/legacy/ephysics/src/lib/EPhysics.h b/legacy/ephysics/src/lib/EPhysics.h index a51d923..6ce042c 100644 --- a/legacy/ephysics/src/lib/EPhysics.h +++ b/legacy/ephysics/src/lib/EPhysics.h @@ -1497,9 +1497,9 @@ EAPI double ephysics_body_angular_velocity_get(const EPhysics_Body *body); * @param linear_threshold The linear sleeping threshold factor. * @param angular_threshold The angular sleeping threshold factor. * - * @see ephysics_body_linear_sleeping_threshold_get() - * @see ephysics_body_angular_sleeping_threshold_get() + * @see ephysics_body_sleeping_threshold_get(). * @see ephysics_world_max_sleeping_time_set() for sleeping time details. + * * @ingroup EPhysics_Body */ EAPI void ephysics_body_sleeping_threshold_set(EPhysics_Body *body, double linear_threshold, double angular_threshold); @@ -1509,29 +1509,17 @@ EAPI void ephysics_body_sleeping_threshold_set(EPhysics_Body *body, double linea * Get the linear sleeping threshold. * * @note The linear sleeping threshold is measured in Evas coordinates per - * second. + * second and the angular sleeping threshold is measured in degrees.. * * @param body The body to get the linear sleeping threshold from. - * @return The linear sleeping threshold from @p body. - * - * @see ephysics_body_sleeping_threshold_set() - * @ingroup EPhysics_Body - */ -EAPI double ephysics_body_linear_sleeping_threshold_get(const EPhysics_Body *body); - -/** - * @brief - * Get the angular sleeping threshold. - * - * @note The angular sleeping threshold is measured in degrees. + * @param linear_threshold The linear sleeping threshold factor. + * @param angular_threshold The angular sleeping threshold factor. * - * @param body The body to get the angular sleeping threshold from. - * @return The angular sleeping threshold from @p body. + * @see ephysics_body_sleeping_threshold_set() for more details. * - * @see ephysics_body_sleeping_threshold_set() * @ingroup EPhysics_Body */ -EAPI double ephysics_body_angular_sleeping_threshold_get(const EPhysics_Body *body); +EAPI void ephysics_body_sleeping_threshold_get(const EPhysics_Body *body, double *linear_threshold, double *angular_threshold); /** * @brief diff --git a/legacy/ephysics/src/lib/ephysics_body.cpp b/legacy/ephysics/src/lib/ephysics_body.cpp index 3ce2325..81fb383 100644 --- a/legacy/ephysics/src/lib/ephysics_body.cpp +++ b/legacy/ephysics/src/lib/ephysics_body.cpp @@ -786,31 +786,23 @@ ephysics_body_sleeping_threshold_set(EPhysics_Body *body, double linear_threshol angular_threshold / RAD_TO_DEG); } -EAPI double -ephysics_body_linear_sleeping_threshold_get(const EPhysics_Body *body) +EAPI void +ephysics_body_sleeping_threshold_get(const EPhysics_Body *body, double *linear_threshold, double *angular_threshold) { double rate; if (!body) { ERR("Can't get linear sleeping threshold, body is null."); - return 0; + return; } rate = ephysics_world_rate_get(body->world); - return body->rigid_body->getLinearSleepingThreshold() * rate; -} - -EAPI double -ephysics_body_angular_sleeping_threshold_get(const EPhysics_Body *body) -{ - if (!body) - { - ERR("Can't get angular sleeping threshold, body is null."); - return 0; - } - - return body->rigid_body->getAngularSleepingThreshold() * RAD_TO_DEG; + if (linear_threshold) + *linear_threshold = body->rigid_body->getLinearSleepingThreshold() * rate; + if (angular_threshold) + *angular_threshold = body->rigid_body->getAngularSleepingThreshold() * + RAD_TO_DEG; } EAPI void -- 2.7.4