From: Enlightenment S. <no-...@en...> - 2012-06-29 22:22:34
|
Log: EPhysics: unregister test log domain Author: bdilly Date: 2012-06-29 15:22:28 -0700 (Fri, 29 Jun 2012) New Revision: 73063 Trac: http://trac.enlightenment.org/e/changeset/73063 Modified: trunk/ephysics/src/bin/test.c Modified: trunk/ephysics/src/bin/test.c =================================================================== --- trunk/ephysics/src/bin/test.c 2012-06-29 22:04:42 UTC (rev 73062) +++ trunk/ephysics/src/bin/test.c 2012-06-29 22:22:28 UTC (rev 73063) @@ -165,6 +165,14 @@ Eina_Bool test_win_only = EINA_FALSE; char *autorun = NULL; + _ephysics_test_log_dom = eina_log_domain_register( + "ephysics-test", EPHYSICS_TEST_LOG_COLOR); + if (_ephysics_test_log_dom < 0) + { + EINA_LOG_CRIT("Could not register log domain: ephysics-test"); + return -1; + } + elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); elm_app_compile_bin_dir_set(PACKAGE_BIN_DIR); @@ -185,13 +193,15 @@ } } - _ephysics_test_log_dom = eina_log_domain_register( - "ephysics-test", EPHYSICS_TEST_LOG_COLOR); - elm_theme_extension_add(NULL, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj"); _main_win_add(autorun, test_win_only); + elm_run(); + + eina_log_domain_unregister(_ephysics_test_log_dom); + _ephysics_test_log_dom = -1; + elm_shutdown(); return 0; } |
From: Enlightenment S. <no-...@en...> - 2012-07-03 23:24:00
|
Log: EPhysics: use elm_layout instead of edje to add cbs Oh, I love when weird things got duplicated over all the project. Use elm_layout_signal_callback_add instead of edje_object_signal_callback_add. Author: bdilly Date: 2012-07-03 16:23:53 -0700 (Tue, 03 Jul 2012) New Revision: 73248 Trac: http://trac.enlightenment.org/e/changeset/73248 Modified: trunk/ephysics/src/bin/test_bouncing_ball.c trunk/ephysics/src/bin/test_bouncing_text.c trunk/ephysics/src/bin/test_colliding_balls.c trunk/ephysics/src/bin/test_collision_detection.c trunk/ephysics/src/bin/test_constraint.c trunk/ephysics/src/bin/test_falling_letters.c trunk/ephysics/src/bin/test_jumping_balls.c trunk/ephysics/src/bin/test_rotate.c trunk/ephysics/src/bin/test_velocity.c Modified: trunk/ephysics/src/bin/test_bouncing_ball.c =================================================================== --- trunk/ephysics/src/bin/test_bouncing_ball.c 2012-07-03 23:23:24 UTC (rev 73247) +++ trunk/ephysics/src/bin/test_bouncing_ball.c 2012-07-03 23:23:53 UTC (rev 73248) @@ -75,7 +75,6 @@ EPhysics_Body *boundary; EPhysics_World *world; Test_Data *test_data; - Evas_Object *edje; if (!ephysics_init()) return; @@ -83,9 +82,8 @@ test_data = test_data_new(); test_win_add(test_data, "Bouncing Ball", EINA_TRUE); - edje = elm_layout_edje_get(test_data->layout); - edje_object_signal_callback_add(edje, "restart", "test-theme", _restart, - test_data); + elm_layout_signal_callback_add(test_data->layout, "restart", "test-theme", + _restart, test_data); elm_object_signal_emit(test_data->layout, "arrows,show", "ephysics_test"); world = ephysics_world_new(); Modified: trunk/ephysics/src/bin/test_bouncing_text.c =================================================================== --- trunk/ephysics/src/bin/test_bouncing_text.c 2012-07-03 23:23:24 UTC (rev 73247) +++ trunk/ephysics/src/bin/test_bouncing_text.c 2012-07-03 23:23:53 UTC (rev 73248) @@ -44,18 +44,15 @@ EPhysics_Body *boundary; EPhysics_World *world; Test_Data *test_data; - Evas_Object *edje; if (!ephysics_init()) return; test_data = test_data_new(); test_win_add(test_data, "Bouncing Text", EINA_TRUE); + elm_layout_signal_callback_add(test_data->layout, "restart", "test-theme", + _restart, test_data); - edje = elm_layout_edje_get(test_data->layout); - edje_object_signal_callback_add(edje, "restart", "test-theme", _restart, - test_data); - world = ephysics_world_new(); ephysics_world_render_geometry_set(world, 50, 40, WIDTH - 100, FLOOR_Y - 40); test_data->world = world; Modified: trunk/ephysics/src/bin/test_colliding_balls.c =================================================================== --- trunk/ephysics/src/bin/test_colliding_balls.c 2012-07-03 23:23:24 UTC (rev 73247) +++ trunk/ephysics/src/bin/test_colliding_balls.c 2012-07-03 23:23:53 UTC (rev 73248) @@ -63,18 +63,15 @@ EPhysics_Body *boundary; EPhysics_World *world; Test_Data *test_data; - Evas_Object *edje; if (!ephysics_init()) return; test_data = test_data_new(); test_win_add(test_data, "Colliding Balls", EINA_TRUE); + elm_layout_signal_callback_add(test_data->layout, "restart", "test-theme", + _restart, test_data); - edje = elm_layout_edje_get(test_data->layout); - edje_object_signal_callback_add(edje, "restart", "test-theme", _restart, - test_data); - world = ephysics_world_new(); ephysics_world_render_geometry_set(world, 50, 40, WIDTH - 100, FLOOR_Y - 40); test_data->world = world; Modified: trunk/ephysics/src/bin/test_collision_detection.c =================================================================== --- trunk/ephysics/src/bin/test_collision_detection.c 2012-07-03 23:23:24 UTC (rev 73247) +++ trunk/ephysics/src/bin/test_collision_detection.c 2012-07-03 23:23:53 UTC (rev 73248) @@ -142,7 +142,6 @@ Collision_Data *collision_data; EPhysics_Body *boundary; EPhysics_World *world; - Evas_Object *edje; if (!ephysics_init()) return; @@ -158,11 +157,9 @@ test_win_add((Test_Data *)collision_data, "Collision Detection", EINA_FALSE); evas_object_smart_callback_add(collision_data->base.win, "delete,request", _win_del, collision_data); + elm_layout_signal_callback_add(collision_data->base.layout, "restart", + "test-theme", _restart, collision_data); - edje = elm_layout_edje_get(collision_data->base.layout); - edje_object_signal_callback_add(edje, "restart", "test-theme", _restart, - collision_data); - world = ephysics_world_new(); ephysics_world_render_geometry_set(world, 50, 40, WIDTH - 100, FLOOR_Y - 40); collision_data->base.world = world; Modified: trunk/ephysics/src/bin/test_constraint.c =================================================================== --- trunk/ephysics/src/bin/test_constraint.c 2012-07-03 23:23:24 UTC (rev 73247) +++ trunk/ephysics/src/bin/test_constraint.c 2012-07-03 23:23:53 UTC (rev 73248) @@ -81,18 +81,15 @@ EPhysics_Body *boundary; EPhysics_World *world; Test_Data *test_data; - Evas_Object *edje; if (!ephysics_init()) return; test_data = test_data_new(); test_win_add(test_data, "Constraint", EINA_TRUE); + elm_layout_signal_callback_add(test_data->layout, "restart", "test-theme", + _restart, test_data); - edje = elm_layout_edje_get(test_data->layout); - edje_object_signal_callback_add(edje, "restart", "test-theme", _restart, - test_data); - world = ephysics_world_new(); ephysics_world_render_geometry_set(world, 50, 40, WIDTH - 100, FLOOR_Y - 40); test_data->world = world; Modified: trunk/ephysics/src/bin/test_falling_letters.c =================================================================== --- trunk/ephysics/src/bin/test_falling_letters.c 2012-07-03 23:23:24 UTC (rev 73247) +++ trunk/ephysics/src/bin/test_falling_letters.c 2012-07-03 23:23:53 UTC (rev 73248) @@ -53,18 +53,15 @@ EPhysics_Body *boundary; EPhysics_World *world; Test_Data *test_data; - Evas_Object *edje; if (!ephysics_init()) return; test_data = test_data_new(); test_win_add(test_data, "Falling Letters", EINA_TRUE); + elm_layout_signal_callback_add(test_data->layout, "restart", "test-theme", + _restart, test_data); - edje = elm_layout_edje_get(test_data->layout); - edje_object_signal_callback_add(edje, "restart", "test-theme", _restart, - test_data); - world = ephysics_world_new(); ephysics_world_render_geometry_set(world, 50, 40, WIDTH - 100, FLOOR_Y - 40); test_data->world = world; Modified: trunk/ephysics/src/bin/test_jumping_balls.c =================================================================== --- trunk/ephysics/src/bin/test_jumping_balls.c 2012-07-03 23:23:24 UTC (rev 73247) +++ trunk/ephysics/src/bin/test_jumping_balls.c 2012-07-03 23:23:53 UTC (rev 73248) @@ -102,20 +102,18 @@ test_jumping_balls(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { EPhysics_Body *boundary; - Evas_Object *bt, *edje; EPhysics_World *world; Test_Data *test_data; + Evas_Object *bt; if (!ephysics_init()) return; test_data = test_data_new(); test_win_add(test_data, "Jumping Balls", EINA_TRUE); + elm_layout_signal_callback_add(test_data->layout, "restart", "test-theme", + _restart, test_data); - edje = elm_layout_edje_get(test_data->layout); - edje_object_signal_callback_add(edje, "restart", "test-theme", _restart, - test_data); - world = ephysics_world_new(); ephysics_world_render_geometry_set(world, 50, 40, WIDTH - 100, FLOOR_Y - 40); test_data->world = world; Modified: trunk/ephysics/src/bin/test_rotate.c =================================================================== --- trunk/ephysics/src/bin/test_rotate.c 2012-07-03 23:23:24 UTC (rev 73247) +++ trunk/ephysics/src/bin/test_rotate.c 2012-07-03 23:23:53 UTC (rev 73248) @@ -76,18 +76,15 @@ EPhysics_Body *boundary; EPhysics_World *world; Test_Data *test_data; - Evas_Object *edje; if (!ephysics_init()) return; test_data = test_data_new(); test_win_add(test_data, "Rotate", EINA_TRUE); + elm_layout_signal_callback_add(test_data->layout, "restart", "test-theme", + _restart, test_data); - edje = elm_layout_edje_get(test_data->layout); - edje_object_signal_callback_add(edje, "restart", "test-theme", _restart, - test_data); - world = ephysics_world_new(); ephysics_world_render_geometry_set(world, 50, 40, WIDTH - 100, FLOOR_Y - 40); test_data->world = world; Modified: trunk/ephysics/src/bin/test_velocity.c =================================================================== --- trunk/ephysics/src/bin/test_velocity.c 2012-07-03 23:23:24 UTC (rev 73247) +++ trunk/ephysics/src/bin/test_velocity.c 2012-07-03 23:23:53 UTC (rev 73248) @@ -100,7 +100,6 @@ EPhysics_Body *boundary; EPhysics_World *world; Test_Data *test_data; - Evas_Object *edje; if (!ephysics_init()) return; @@ -108,10 +107,8 @@ test_data = test_data_new(); test_win_add(test_data, "Velocity Getters", EINA_TRUE); - edje = elm_layout_edje_get(test_data->layout); - edje_object_signal_callback_add(edje, "restart", "test-theme", _restart, - test_data); - + elm_layout_signal_callback_add(test_data->layout, "restart", "test-theme", + _restart, test_data); elm_layout_text_set(test_data->layout, "linear_vel", "Linear velocity: 0, 0"); elm_layout_text_set(test_data->layout, "angular_vel", "Angular velocity: 0"); |
From: Enlightenment S. <no-...@en...> - 2012-07-27 14:50:20
|
Log: EPhysics: add test for collision filter Author: bdilly Date: 2012-07-27 07:50:14 -0700 (Fri, 27 Jul 2012) New Revision: 74503 Trac: http://trac.enlightenment.org/e/changeset/74503 Added: trunk/ephysics/src/bin/test_collision_filter.c Modified: trunk/ephysics/src/bin/Makefile.am trunk/ephysics/src/bin/test.c Modified: trunk/ephysics/src/bin/Makefile.am =================================================================== --- trunk/ephysics/src/bin/Makefile.am 2012-07-27 14:50:03 UTC (rev 74502) +++ trunk/ephysics/src/bin/Makefile.am 2012-07-27 14:50:14 UTC (rev 74503) @@ -21,6 +21,7 @@ test_camera.c \ test_colliding_balls.c \ test_collision_detection.c \ +test_collision_filter.c \ test_collision_speed.c \ test_constraint.c \ test_falling_letters.c \ Modified: trunk/ephysics/src/bin/test.c =================================================================== --- trunk/ephysics/src/bin/test.c 2012-07-27 14:50:03 UTC (rev 74502) +++ trunk/ephysics/src/bin/test.c 2012-07-27 14:50:14 UTC (rev 74503) @@ -14,6 +14,7 @@ void test_camera(void *data, Evas_Object *obj, void *event_info); void test_colliding_balls(void *data, Evas_Object *obj, void *event_info); void test_collision(void *data, Evas_Object *obj, void *event_info); +void test_collision_filter(void *data, Evas_Object *obj, void *event_info); void test_collision_speed(void *data, Evas_Object *obj, void *event_info); void test_constraint(void *data, Evas_Object *obj, void *event_info); void test_falling_letters(void *data, Evas_Object *obj, void *event_info); @@ -155,6 +156,7 @@ ADD_TEST("CAMERA", test_camera); ADD_TEST("COLLIDING BALLS", test_colliding_balls); ADD_TEST("COLLISION DETECTION", test_collision); + ADD_TEST("COLLISION FILTER", test_collision_filter); ADD_TEST("COLLISION HIGH SPEED", test_collision_speed); ADD_TEST("CONSTRAINT", test_constraint); ADD_TEST("FALLING LETTERS", test_falling_letters); |
From: Enlightenment S. <no-...@en...> - 2012-08-10 21:02:55
|
Log: EPhysics: fix camera track test Author: bdilly Date: 2012-08-10 14:02:48 -0700 (Fri, 10 Aug 2012) New Revision: 75136 Trac: http://trac.enlightenment.org/e/changeset/75136 Modified: trunk/ephysics/src/bin/test_camera_track.c Modified: trunk/ephysics/src/bin/test_camera_track.c =================================================================== --- trunk/ephysics/src/bin/test_camera_track.c 2012-08-10 21:02:39 UTC (rev 75135) +++ trunk/ephysics/src/bin/test_camera_track.c 2012-08-10 21:02:48 UTC (rev 75136) @@ -10,9 +10,48 @@ Test_Data base; EPhysics_Body *body; Evas_Object *sp; + int old_cx; }; static void +_update_floor(Evas_Object *layout, const char *name, int delta_x, int cy, Eina_Bool ver) +{ + Evas_Object *floor_obj; + int x, y, fx, fy; + + floor_obj = evas_object_data_get(layout, name); + evas_object_geometry_get(floor_obj, &x, &y, NULL, NULL); + fx = x + delta_x; + if (fx < -FLOOR_WIDTH) + fx += 2 * FLOOR_WIDTH; + + fy = (ver) ? FLOOR_Y - 20 - cy + 40 : y; + evas_object_move(floor_obj, fx, fy); +} + +static void +_update_object_cb(void *data, EPhysics_Body *body, void *event_info __UNUSED__) +{ + Track_Data *track_data = data; + EPhysics_Camera *camera; + int cx, cy, delta_x = 0; + Eina_Bool hor, ver; + + ephysics_body_evas_object_update(body); + camera = ephysics_world_camera_get(track_data->base.world); + ephysics_camera_tracked_body_get(camera, NULL, &hor, &ver); + ephysics_camera_position_get(camera, &cx, &cy); + + if (hor) + delta_x = track_data->old_cx - cx; + + _update_floor(track_data->base.layout, "floor", delta_x, cy, ver); + _update_floor(track_data->base.layout, "floor2", delta_x, cy, ver); + + track_data->old_cx = cx; +} + +static void _track_apply(Track_Data *track_data) { Eina_Bool hor = EINA_FALSE; @@ -50,7 +89,7 @@ _world_populate(Track_Data *track_data) { static const char *colors[] = {"blue-cube", "purple-cube"}; - Evas_Object *cube, *sphere, *shadow; + Evas_Object *cube, *sphere; EPhysics_Body *body; int i, color, row; @@ -72,22 +111,12 @@ body = ephysics_body_box_add(track_data->base.world); ephysics_body_evas_object_set(body, cube, EINA_TRUE); ephysics_body_restitution_set(body, 0.95); - ephysics_body_friction_set(body, 0.1); + ephysics_body_friction_set(body, 1); ephysics_body_mass_set(body, 0); track_data->base.bodies = eina_list_append( track_data->base.bodies, body); } - shadow = elm_layout_add(track_data->base.win); - elm_layout_file_set( - shadow, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", - "shadow-ball"); - evas_object_move(shadow, 0, FLOOR_Y); - evas_object_resize(shadow, 54, 3); - evas_object_show(shadow); - track_data->base.evas_objs = eina_list_append(track_data->base.evas_objs, - shadow); - sphere = elm_image_add(track_data->base.win); elm_image_file_set( sphere, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", "green-ball"); @@ -101,9 +130,10 @@ ephysics_body_evas_object_set(body, sphere, EINA_TRUE); ephysics_body_event_callback_add(body, EPHYSICS_CALLBACK_BODY_UPDATE, - update_object_cb, shadow); + _update_object_cb, track_data); ephysics_body_restitution_set(body, 0.95); - ephysics_body_friction_set(body, 0.1); + ephysics_body_friction_set(body, 1); + ephysics_body_damping_set(body, 0.1, 0); ephysics_body_central_impulse_apply(body, 3, 0); track_data->body = body; track_data->base.bodies = eina_list_append(track_data->base.bodies, body); @@ -114,14 +144,22 @@ { Track_Data *track_data = data; EPhysics_Camera *camera; + Evas_Object *floor_obj; DBG("Restart pressed"); test_clean((Test_Data *)track_data); _world_populate(track_data); + floor_obj = evas_object_data_get(track_data->base.layout, "floor"); + evas_object_move(floor_obj, - WIDTH / 2, FLOOR_Y - 20); + floor_obj = evas_object_data_get(track_data->base.layout, "floor2"); + evas_object_move(floor_obj, FLOOR_WIDTH - WIDTH / 2, FLOOR_Y - 20); + camera = ephysics_world_camera_get(track_data->base.world); ephysics_camera_position_set(camera, 50, 40); + track_data->old_cx = 50; + _track_apply(track_data); } @@ -141,9 +179,9 @@ test_camera_track(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { EPhysics_Body *boundary; + Evas_Object *sp, *floor_obj; + Track_Data *track_data; EPhysics_World *world; - Track_Data *track_data; - Evas_Object *sp; if (!ephysics_init()) return; @@ -178,6 +216,22 @@ elm_layout_content_set(track_data->base.layout, "extra_input", sp); track_data->sp = sp; + floor_obj = elm_image_add(track_data->base.win); + elm_image_file_set( + floor_obj, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", "floor"); + evas_object_move(floor_obj, - WIDTH / 2, FLOOR_Y - 20); + evas_object_resize(floor_obj, FLOOR_WIDTH, 224); + evas_object_show(floor_obj); + evas_object_data_set(track_data->base.layout, "floor", floor_obj); + + floor_obj = elm_image_add(track_data->base.win); + elm_image_file_set( + floor_obj, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", "floor"); + evas_object_move(floor_obj, FLOOR_WIDTH - WIDTH / 2, FLOOR_Y - 20); + evas_object_resize(floor_obj, FLOOR_WIDTH, 224); + evas_object_show(floor_obj); + evas_object_data_set(track_data->base.layout, "floor2", floor_obj); + world = ephysics_world_new(); ephysics_world_render_geometry_set(world, 50, 40, WIDTH - 100, FLOOR_Y - 40); track_data->base.world = world; @@ -188,5 +242,6 @@ ephysics_body_restitution_set(boundary, 0.65); ephysics_body_friction_set(boundary, 4); + track_data->old_cx = 50; _world_populate(track_data); } |
From: Enlightenment S. <no-...@en...> - 2012-08-10 21:03:02
|
Log: EPhysics: Add test exposing delete issues Callbacks and bodies delete are not correctly handled. Author: bdilly Date: 2012-08-10 14:02:56 -0700 (Fri, 10 Aug 2012) New Revision: 75137 Trac: http://trac.enlightenment.org/e/changeset/75137 Added: trunk/ephysics/src/bin/test_delete.c Modified: trunk/ephysics/src/bin/Makefile.am trunk/ephysics/src/bin/test.c Modified: trunk/ephysics/src/bin/Makefile.am =================================================================== --- trunk/ephysics/src/bin/Makefile.am 2012-08-10 21:02:48 UTC (rev 75136) +++ trunk/ephysics/src/bin/Makefile.am 2012-08-10 21:02:56 UTC (rev 75137) @@ -25,6 +25,7 @@ test_collision_filter.c \ test_collision_speed.c \ test_constraint.c \ +test_delete.c \ test_falling_letters.c \ test_jumping_balls.c \ test_no_gravity.c \ Modified: trunk/ephysics/src/bin/test.c =================================================================== --- trunk/ephysics/src/bin/test.c 2012-08-10 21:02:48 UTC (rev 75136) +++ trunk/ephysics/src/bin/test.c 2012-08-10 21:02:56 UTC (rev 75137) @@ -18,6 +18,7 @@ void test_collision_filter(void *data, Evas_Object *obj, void *event_info); void test_collision_speed(void *data, Evas_Object *obj, void *event_info); void test_constraint(void *data, Evas_Object *obj, void *event_info); +void test_delete(void *data, Evas_Object *obj, void *event_info); void test_falling_letters(void *data, Evas_Object *obj, void *event_info); void test_jumping_balls(void *data, Evas_Object *obj, void *event_info); void test_no_gravity(void *data, Evas_Object *obj, void *event_info); @@ -161,6 +162,7 @@ ADD_TEST("COLLISION FILTER", test_collision_filter); ADD_TEST("COLLISION HIGH SPEED", test_collision_speed); ADD_TEST("CONSTRAINT", test_constraint); + ADD_TEST("DELETE BODY", test_delete); ADD_TEST("FALLING LETTERS", test_falling_letters); ADD_TEST("JUMPING BALLS", test_jumping_balls); ADD_TEST("NO GRAVITY", test_no_gravity); |
From: Enlightenment S. <no-...@en...> - 2012-08-10 21:03:55
|
Log: EPhysics: re-write sleeping threshold test It was buggy. Author: bdilly Date: 2012-08-10 14:03:47 -0700 (Fri, 10 Aug 2012) New Revision: 75142 Trac: http://trac.enlightenment.org/e/changeset/75142 Modified: trunk/ephysics/src/bin/test_sleeping_threshold.c Modified: trunk/ephysics/src/bin/test_sleeping_threshold.c =================================================================== --- trunk/ephysics/src/bin/test_sleeping_threshold.c 2012-08-10 21:03:39 UTC (rev 75141) +++ trunk/ephysics/src/bin/test_sleeping_threshold.c 2012-08-10 21:03:47 UTC (rev 75142) @@ -4,152 +4,109 @@ #include "ephysics_test.h" -typedef struct _Sleeping_Data Sleeping_Data; - -struct _Sleeping_Data { - Test_Data base; - EPhysics_Body *sphere; - EPhysics_Body *sphere2; -}; - static void -_world_populate(Sleeping_Data *sleeping_data) +_world_populate(Test_Data *test_data) { Evas_Object *sphere1, *sphere2, *sh1, *sh2; EPhysics_Body *sphere_body1, *sphere_body2; - sh1 = elm_layout_add(sleeping_data->base.win); + sh1 = elm_layout_add(test_data->win); elm_layout_file_set( sh1, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", "shadow-ball"); - evas_object_move(sh1, WIDTH / 2, FLOOR_Y); + evas_object_move(sh1, 50, FLOOR_Y); evas_object_resize(sh1, 70, 3); evas_object_show(sh1); - sleeping_data->base.evas_objs = eina_list_append( - sleeping_data->base.evas_objs, sh1); + test_data->evas_objs = eina_list_append(test_data->evas_objs, sh1); - sphere1 = elm_image_add(sleeping_data->base.win); - elm_image_file_set( - sphere1, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", - "big-blue-ball"); - evas_object_move(sphere1, 20, FLOOR_Y - 70 + 1); + sphere1 = elm_image_add(test_data->win); + elm_image_file_set(sphere1, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", + "big-blue-ball"); + evas_object_move(sphere1, 50, FLOOR_Y - 70); evas_object_resize(sphere1, 70, 70); evas_object_show(sphere1); - sleeping_data->base.evas_objs = eina_list_append( - sleeping_data->base.evas_objs, sphere1); + test_data->evas_objs = eina_list_append(test_data->evas_objs, sphere1); - evas_object_name_set(sphere1, "sphere1"); - - sphere_body1 = ephysics_body_circle_add(sleeping_data->base.world); + sphere_body1 = ephysics_body_circle_add(test_data->world); ephysics_body_evas_object_set(sphere_body1, sphere1, EINA_TRUE); ephysics_body_event_callback_add(sphere_body1, EPHYSICS_CALLBACK_BODY_UPDATE, update_object_cb, sh1); - ephysics_body_restitution_set(sphere_body1, 0.8); + ephysics_body_restitution_set(sphere_body1, 1); ephysics_body_friction_set(sphere_body1, 0.4); - ephysics_body_sleeping_threshold_set(sphere_body1, 200, 328); - ephysics_body_linear_velocity_set(sphere_body1, 1, 0); + ephysics_body_sleeping_threshold_set(sphere_body1, 60, 360); + ephysics_body_linear_velocity_set(sphere_body1, 100, 0); ephysics_body_damping_set(sphere_body1, 0.5, 0.5); + test_data->bodies = eina_list_append(test_data->bodies, sphere_body1); - sleeping_data->base.bodies = eina_list_append( - sleeping_data->base.bodies, sphere_body1); - sleeping_data->sphere = sphere_body1; - - sh2 = elm_layout_add(sleeping_data->base.win); + sh2 = elm_layout_add(test_data->win); elm_layout_file_set( sh2, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", "shadow-ball"); - evas_object_move(sh2, WIDTH / 8, FLOOR_Y); + evas_object_move(sh2, WIDTH - 120, FLOOR_Y); evas_object_resize(sh2, 70, 3); evas_object_show(sh2); - sleeping_data->base.evas_objs = eina_list_append( - sleeping_data->base.evas_objs, sh2); + test_data->evas_objs = eina_list_append(test_data->evas_objs, sh2); - sphere2 = elm_image_add(sleeping_data->base.win); - elm_image_file_set( - sphere2, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", - "big-red-ball"); - evas_object_move(sphere2, WIDTH - 100, FLOOR_Y - 70 + 1); + sphere2 = elm_image_add(test_data->win); + elm_image_file_set(sphere2, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", + "big-red-ball"); + evas_object_move(sphere2, WIDTH - 120, FLOOR_Y - 70); evas_object_resize(sphere2, 70, 70); evas_object_show(sphere2); - sleeping_data->base.evas_objs = eina_list_append( - sleeping_data->base.evas_objs, sphere2); + test_data->evas_objs = eina_list_append(test_data->evas_objs, sphere2); - sphere_body2 = ephysics_body_circle_add(sleeping_data->base.world); + sphere_body2 = ephysics_body_circle_add(test_data->world); ephysics_body_evas_object_set(sphere_body2, sphere2, EINA_TRUE); ephysics_body_event_callback_add(sphere_body2, EPHYSICS_CALLBACK_BODY_UPDATE, update_object_cb, sh2); ephysics_body_restitution_set(sphere_body2, 1); ephysics_body_friction_set(sphere_body2, 0.4); - ephysics_body_sleeping_threshold_set(sphere_body2, 0, 0); - ephysics_body_linear_velocity_set(sphere_body2, -1, 0); + ephysics_body_sleeping_threshold_set(sphere_body2, 10, 360); + ephysics_body_linear_velocity_set(sphere_body2, -100, 0); ephysics_body_damping_set(sphere_body2, 0.5, 0.5); - sleeping_data->sphere2 = sphere_body2; - sleeping_data->base.bodies = eina_list_append( - sleeping_data->base.bodies, sphere_body2); + test_data->bodies = eina_list_append(test_data->bodies, sphere_body2); } static void _restart(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) { - Sleeping_Data *sleeping_data = data; + Test_Data *test_data = data; DBG("Restart pressed"); - test_clean((Test_Data *)sleeping_data); - _world_populate(sleeping_data); + test_clean(test_data); + _world_populate(test_data); } -static void -_win_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) -{ - Sleeping_Data *sleeping_data = data; - - test_clean((Test_Data *)sleeping_data); - evas_object_del(sleeping_data->base.layout); - ephysics_world_del(sleeping_data->base.world); - free(sleeping_data); - ephysics_shutdown(); -} - void test_sleeping(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { - Sleeping_Data *sleeping_data; EPhysics_Body *boundary; EPhysics_World *world; + Test_Data *test_data; if (!ephysics_init()) return; - sleeping_data = calloc(1, sizeof(Sleeping_Data)); - if (!sleeping_data) - { - ERR("Failed to create test data"); - ephysics_shutdown(); - return; - } + test_data = test_data_new(); + test_win_add(test_data, "Sleeping Threshold", EINA_TRUE); + elm_object_signal_emit(test_data->layout, "borders,show", "ephysics_test"); + elm_layout_signal_callback_add(test_data->layout, "restart", + "test-theme", _restart, test_data); - test_win_add((Test_Data *)sleeping_data, "Sleeping Threshold", EINA_FALSE); - elm_object_signal_emit(sleeping_data->base.layout, "borders,show", - "ephysics_test"); - evas_object_smart_callback_add(sleeping_data->base.win, - "delete,request", _win_del, sleeping_data); - elm_layout_signal_callback_add(sleeping_data->base.layout, "restart", - "test-theme", _restart, sleeping_data); - world = ephysics_world_new(); ephysics_world_render_geometry_set(world, 50, 40, WIDTH - 100, FLOOR_Y - 40); - sleeping_data->base.world = world; - ephysics_world_max_sleeping_time_set(world, 0.5); + test_data->world = world; + ephysics_world_max_sleeping_time_set(world, 0.3); - boundary = ephysics_body_bottom_boundary_add(sleeping_data->base.world); + boundary = ephysics_body_bottom_boundary_add(test_data->world); ephysics_body_restitution_set(boundary, 0); ephysics_body_friction_set(boundary, 20); - boundary = ephysics_body_right_boundary_add(sleeping_data->base.world); + boundary = ephysics_body_right_boundary_add(test_data->world); ephysics_body_restitution_set(boundary, 0.8); - ephysics_body_left_boundary_add(sleeping_data->base.world); - ephysics_body_top_boundary_add(sleeping_data->base.world); + ephysics_body_left_boundary_add(test_data->world); + ephysics_body_top_boundary_add(test_data->world); - _world_populate(sleeping_data); + _world_populate(test_data); } |
From: Enlightenment S. <no-...@en...> - 2012-08-20 22:16:08
|
Log: EPhysics: test torque forces Author: bdilly Date: 2012-08-20 15:16:02 -0700 (Mon, 20 Aug 2012) New Revision: 75477 Trac: http://trac.enlightenment.org/e/changeset/75477 Modified: trunk/ephysics/src/bin/test_rotating_forever.c Modified: trunk/ephysics/src/bin/test_rotating_forever.c =================================================================== --- trunk/ephysics/src/bin/test_rotating_forever.c 2012-08-20 22:15:52 UTC (rev 75476) +++ trunk/ephysics/src/bin/test_rotating_forever.c 2012-08-20 22:16:02 UTC (rev 75477) @@ -16,6 +16,32 @@ return EINA_TRUE; } +static Eina_Bool +_increase_torque_cb(void *data) +{ + EPhysics_Body *body = data; + Evas_Object *obj; + + ephysics_body_torque_apply(body, 2); + obj = ephysics_body_evas_object_get(body); + evas_object_data_set(obj, "increase_timer", NULL); + + return EINA_FALSE; +} + +static Eina_Bool +_stop_torque_cb(void *data) +{ + EPhysics_Body *body = data; + Evas_Object *obj; + + ephysics_body_forces_clear(body); + obj = ephysics_body_evas_object_get(body); + evas_object_data_set(obj, "stop_timer", NULL); + + return EINA_FALSE; +} + static void _del_cb(void *data, EPhysics_Body *body __UNUSED__, void *event_info __UNUSED__) { @@ -23,15 +49,32 @@ } static void +_del_torque_cb(void *data, EPhysics_Body *body __UNUSED__, void *event_info __UNUSED__) +{ + Evas_Object *obj = data; + Ecore_Timer *timer; + + timer = evas_object_data_get(obj, "increase_timer"); + if (timer) + ecore_timer_del(timer); + + timer = evas_object_data_get(obj, "stop_timer"); + if (timer) + ecore_timer_del(timer); +} + +static void _update_object_cb(void *data __UNUSED__, EPhysics_Body *body, void *event_info __UNUSED__) { - double rot, vrot; + double rot, vrot, torque; rot = ephysics_body_rotation_get(body); vrot = ephysics_body_angular_velocity_get(body); + ephysics_body_forces_get(body, NULL, NULL, &torque); + ephysics_body_evas_object_update(body); - DBG("body: %p, rot: %lf, vrot :%lf", body, rot, vrot); + DBG("body: %p, rot: %lf, vrot: %lf, torque: %lf", body, rot, vrot, torque); } static void @@ -95,6 +138,31 @@ ephysics_body_event_callback_add(body, EPHYSICS_CALLBACK_BODY_DEL, _del_cb, timer); + + cube = elm_image_add(test_data->win); + elm_image_file_set( + cube, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", "blue-cube"); + evas_object_move(cube, WIDTH * 2 / 3, 60); + evas_object_resize(cube, 70, 70); + evas_object_show(cube); + test_data->evas_objs = eina_list_append(test_data->evas_objs, cube); + + body = ephysics_body_box_add(test_data->world); + ephysics_body_evas_object_set(body, cube, EINA_TRUE); + test_data->bodies = eina_list_append(test_data->bodies, body); + ephysics_body_event_callback_add(body, + EPHYSICS_CALLBACK_BODY_UPDATE, + _update_object_cb, NULL); + + ephysics_body_torque_apply(body, 2); + ephysics_body_event_callback_add(body, + EPHYSICS_CALLBACK_BODY_DEL, + _del_torque_cb, cube); + + timer = ecore_timer_add(3, _increase_torque_cb, body); + evas_object_data_set(cube, "increase_timer", timer); + timer = ecore_timer_add(5, _stop_torque_cb, body); + evas_object_data_set(cube, "stop_timer", timer); } static void |
From: Enlightenment S. <no-...@en...> - 2012-08-20 22:17:17
|
Log: EPhysics: add test for forces API Author: bdilly Date: 2012-08-20 15:17:11 -0700 (Mon, 20 Aug 2012) New Revision: 75478 Trac: http://trac.enlightenment.org/e/changeset/75478 Added: trunk/ephysics/src/bin/test_forces.c Modified: trunk/ephysics/src/bin/Makefile.am trunk/ephysics/src/bin/test.c Modified: trunk/ephysics/src/bin/Makefile.am =================================================================== --- trunk/ephysics/src/bin/Makefile.am 2012-08-20 22:16:02 UTC (rev 75477) +++ trunk/ephysics/src/bin/Makefile.am 2012-08-20 22:17:11 UTC (rev 75478) @@ -27,6 +27,7 @@ test_constraint.c \ test_delete.c \ test_falling_letters.c \ +test_forces.c \ test_growing_balls.c \ test_jumping_balls.c \ test_no_gravity.c \ Modified: trunk/ephysics/src/bin/test.c =================================================================== --- trunk/ephysics/src/bin/test.c 2012-08-20 22:16:02 UTC (rev 75477) +++ trunk/ephysics/src/bin/test.c 2012-08-20 22:17:11 UTC (rev 75478) @@ -26,6 +26,7 @@ void test_constraint(void *data, Evas_Object *obj, void *event_info); void test_delete(void *data, Evas_Object *obj, void *event_info); void test_falling_letters(void *data, Evas_Object *obj, void *event_info); +void test_forces(void *data, Evas_Object *obj, void *event_info); void test_growing_balls(void *data, Evas_Object *obj, void *event_info); void test_jumping_balls(void *data, Evas_Object *obj, void *event_info); void test_no_gravity(void *data, Evas_Object *obj, void *event_info); @@ -49,6 +50,7 @@ {"Constraint", test_constraint}, {"Delete Body", test_delete}, {"Falling Letters", test_falling_letters}, + {"Forces", test_forces}, {"Growing Balls", test_growing_balls}, {"Jumping Balls", test_jumping_balls}, {"No Gravity", test_no_gravity}, |
From: Enlightenment S. <no-...@en...> - 2012-10-04 22:38:23
|
Log: ephysics: no need to delete all the bodies on test data del It's already done when deleting the world. Author: bdilly Date: 2012-10-04 15:38:17 -0700 (Thu, 04 Oct 2012) New Revision: 77457 Trac: http://trac.enlightenment.org/e/changeset/77457 Modified: trunk/ephysics/src/bin/test.c Modified: trunk/ephysics/src/bin/test.c =================================================================== --- trunk/ephysics/src/bin/test.c 2012-10-04 22:38:11 UTC (rev 77456) +++ trunk/ephysics/src/bin/test.c 2012-10-04 22:38:17 UTC (rev 77457) @@ -126,7 +126,9 @@ void test_data_del(Test_Data *test_data) { - test_clean(test_data); + Evas_Object *evas_obj; + EINA_LIST_FREE(test_data->evas_objs, evas_obj) + evas_object_del(evas_obj); evas_object_del(test_data->layout); ephysics_world_del(test_data->world); free(test_data); |
From: Enlightenment S. <no-...@en...> - 2012-10-04 22:39:05
|
Log: ephysics: delete all worlds on exit sure, it won't work until externals init / shutdown mess is fixed. Author: bdilly Date: 2012-10-04 15:38:58 -0700 (Thu, 04 Oct 2012) New Revision: 77458 Trac: http://trac.enlightenment.org/e/changeset/77458 Modified: trunk/ephysics/src/bin/test.c trunk/ephysics/src/bin/test_camera.c trunk/ephysics/src/bin/test_camera_track.c trunk/ephysics/src/bin/test_collision_detection.c trunk/ephysics/src/bin/test_collision_speed.c trunk/ephysics/src/bin/test_delete.c trunk/ephysics/src/bin/test_growing_balls.c trunk/ephysics/src/bin/test_velocity.c trunk/ephysics/src/bin/test_win_resize.c Modified: trunk/ephysics/src/bin/test.c =================================================================== --- trunk/ephysics/src/bin/test.c 2012-10-04 22:38:17 UTC (rev 77457) +++ trunk/ephysics/src/bin/test.c 2012-10-04 22:38:58 UTC (rev 77458) @@ -72,7 +72,7 @@ } static void -_subwin_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +_subwin_del_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { test_data_del(data); ephysics_shutdown(); @@ -157,8 +157,8 @@ evas_object_show(win); test_data->win = win; if (autodel) - evas_object_smart_callback_add(win, "delete,request", _subwin_del, - test_data); + evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, + _subwin_del_cb, test_data); ly = elm_layout_add(win); elm_win_resize_object_add(win, ly); @@ -196,6 +196,7 @@ win = elm_win_add(NULL, "main", ELM_WIN_BASIC); elm_win_title_set(win, "EPhysics Tests"); evas_object_smart_callback_add(win, "delete,request", _win_del, NULL); + elm_win_autodel_set(win, EINA_TRUE); evas_object_resize(win, 460, 560); evas_object_show(win); Modified: trunk/ephysics/src/bin/test_camera.c =================================================================== --- trunk/ephysics/src/bin/test_camera.c 2012-10-04 22:38:17 UTC (rev 77457) +++ trunk/ephysics/src/bin/test_camera.c 2012-10-04 22:38:58 UTC (rev 77458) @@ -137,7 +137,7 @@ } static void -_win_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +_win_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Camera_Data *camera_data = data; @@ -196,7 +196,7 @@ } test_win_add((Test_Data *)camera_data, "Camera", EINA_FALSE); - evas_object_smart_callback_add(camera_data->base.win, "delete,request", + evas_object_event_callback_add(camera_data->base.win, EVAS_CALLBACK_DEL, _win_del, camera_data); elm_layout_signal_callback_add(camera_data->base.layout, "restart", Modified: trunk/ephysics/src/bin/test_camera_track.c =================================================================== --- trunk/ephysics/src/bin/test_camera_track.c 2012-10-04 22:38:17 UTC (rev 77457) +++ trunk/ephysics/src/bin/test_camera_track.c 2012-10-04 22:38:58 UTC (rev 77458) @@ -161,7 +161,7 @@ } static void -_win_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +_win_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Track_Data *track_data = data; @@ -192,8 +192,8 @@ } test_win_add((Test_Data *) track_data, "Camera Track", EINA_FALSE); - evas_object_smart_callback_add(track_data->base.win, - "delete,request", _win_del, track_data); + evas_object_event_callback_add(track_data->base.win, EVAS_CALLBACK_DEL, + _win_del, track_data); elm_layout_signal_callback_add(track_data->base.layout, "restart", "test-theme", _restart, track_data); Modified: trunk/ephysics/src/bin/test_collision_detection.c =================================================================== --- trunk/ephysics/src/bin/test_collision_detection.c 2012-10-04 22:38:17 UTC (rev 77457) +++ trunk/ephysics/src/bin/test_collision_detection.c 2012-10-04 22:38:58 UTC (rev 77458) @@ -127,7 +127,7 @@ } static void -_win_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +_win_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Collision_Data *collision_data = data; @@ -159,8 +159,8 @@ test_win_add((Test_Data *)collision_data, "Collision Detection", EINA_FALSE); elm_object_signal_emit(collision_data->base.layout, "borders,show", "ephysics_test"); - evas_object_smart_callback_add(collision_data->base.win, - "delete,request", _win_del, collision_data); + evas_object_event_callback_add(collision_data->base.win, EVAS_CALLBACK_DEL, + _win_del, collision_data); elm_layout_signal_callback_add(collision_data->base.layout, "restart", "test-theme", _restart, collision_data); Modified: trunk/ephysics/src/bin/test_collision_speed.c =================================================================== --- trunk/ephysics/src/bin/test_collision_speed.c 2012-10-04 22:38:17 UTC (rev 77457) +++ trunk/ephysics/src/bin/test_collision_speed.c 2012-10-04 22:38:58 UTC (rev 77458) @@ -72,7 +72,7 @@ } static void -_win_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +_win_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Speed_Data *speed_data = data; @@ -106,8 +106,8 @@ EINA_FALSE); elm_object_signal_emit(speed_data->base.layout, "borders,show", "ephysics_test"); - evas_object_smart_callback_add(speed_data->base.win, - "delete,request", _win_del, speed_data); + evas_object_event_callback_add(speed_data->base.win, EVAS_CALLBACK_DEL, + _win_del, speed_data); elm_layout_signal_callback_add(speed_data->base.layout, "restart", "test-theme", _restart, speed_data); Modified: trunk/ephysics/src/bin/test_delete.c =================================================================== --- trunk/ephysics/src/bin/test_delete.c 2012-10-04 22:38:17 UTC (rev 77457) +++ trunk/ephysics/src/bin/test_delete.c 2012-10-04 22:38:58 UTC (rev 77458) @@ -135,7 +135,7 @@ } static void -_win_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +_win_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Collision_Data *collision_data = data; @@ -165,8 +165,8 @@ } test_win_add((Test_Data *)collision_data, "Delete Body", EINA_FALSE); - evas_object_smart_callback_add(collision_data->base.win, - "delete,request", _win_del, collision_data); + evas_object_event_callback_add(collision_data->base.win, EVAS_CALLBACK_DEL, + _win_del, collision_data); elm_object_signal_emit(collision_data->base.layout, "borders,show", "ephysics_test"); elm_layout_signal_callback_add(collision_data->base.layout, "restart", Modified: trunk/ephysics/src/bin/test_growing_balls.c =================================================================== --- trunk/ephysics/src/bin/test_growing_balls.c 2012-10-04 22:38:17 UTC (rev 77457) +++ trunk/ephysics/src/bin/test_growing_balls.c 2012-10-04 22:38:58 UTC (rev 77458) @@ -58,7 +58,7 @@ } static void -_win_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +_win_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Test_Data *test_data = data; Ecore_Timer *timer = test_data->data; @@ -96,8 +96,8 @@ test_data = test_data_new(); test_win_add(test_data, "Growing Balls", EINA_FALSE); - evas_object_smart_callback_add(test_data->win, "delete,request", _win_del, - test_data); + evas_object_event_callback_add(test_data->win, EVAS_CALLBACK_DEL, + _win_del, test_data); elm_object_signal_emit(test_data->layout, "borders,show", "ephysics_test"); elm_layout_signal_callback_add(test_data->layout, "restart", "test-theme", Modified: trunk/ephysics/src/bin/test_velocity.c =================================================================== --- trunk/ephysics/src/bin/test_velocity.c 2012-10-04 22:38:17 UTC (rev 77457) +++ trunk/ephysics/src/bin/test_velocity.c 2012-10-04 22:38:58 UTC (rev 77458) @@ -138,7 +138,7 @@ } static void -_win_del(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +_win_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Velocity_Data *velocity_data = data; @@ -148,6 +148,7 @@ free(velocity_data); ephysics_shutdown(); } + void test_velocity(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { @@ -167,8 +168,8 @@ } test_win_add((Test_Data *)velocity_data, "Velocity Getters", EINA_FALSE); - evas_object_smart_callback_add(velocity_data->base.win, - "delete,request", _win_del, velocity_data); + evas_object_event_callback_add(velocity_data->base.win, EVAS_CALLBACK_DEL, + _win_del, velocity_data); elm_layout_signal_callback_add(velocity_data->base.layout, "restart", "test-theme", _restart, velocity_data); Modified: trunk/ephysics/src/bin/test_win_resize.c =================================================================== --- trunk/ephysics/src/bin/test_win_resize.c 2012-10-04 22:38:17 UTC (rev 77457) +++ trunk/ephysics/src/bin/test_win_resize.c 2012-10-04 22:38:58 UTC (rev 77458) @@ -12,7 +12,7 @@ }; static void -_del_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +_win_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { free(data); } @@ -175,8 +175,8 @@ evas_object_size_hint_weight_set(test_data->layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_aspect_set(test_data->win, (double) WIDTH / HEIGHT); - evas_object_smart_callback_add(test_data->win, "delete,request", _del_cb, - test_data->data); + evas_object_event_callback_add(test_data->win, EVAS_CALLBACK_DEL, + _win_del, test_data->data); world = ephysics_world_new(); ephysics_world_render_geometry_set(world, 50, 40, WIDTH - 100, FLOOR_Y - 40); |
From: Enlightenment S. <no-...@en...> - 2012-10-04 22:40:05
|
Log: ephysics: use new ELM_POLICY_EXIT To make sure windows will be properly deleted at shutdown. Author: bdilly Date: 2012-10-04 15:39:59 -0700 (Thu, 04 Oct 2012) New Revision: 77465 Trac: http://trac.enlightenment.org/e/changeset/77465 Modified: trunk/ephysics/src/bin/test.c Modified: trunk/ephysics/src/bin/test.c =================================================================== --- trunk/ephysics/src/bin/test.c 2012-10-04 22:39:53 UTC (rev 77464) +++ trunk/ephysics/src/bin/test.c 2012-10-04 22:39:59 UTC (rev 77465) @@ -246,6 +246,7 @@ } elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); + elm_policy_set(ELM_POLICY_EXIT, ELM_POLICY_EXIT_WINDOWS_DEL); elm_app_compile_bin_dir_set(PACKAGE_BIN_DIR); elm_app_compile_data_dir_set(PACKAGE_DATA_DIR); |
From: Enlightenment S. <no-...@en...> - 2012-10-04 22:40:35
|
Log: EPhysics: soft body test Soft Body Test, add smart soft bodies in the list for exclusion. Patch by: Leandro Dorileo <do...@pr...> Author: bdilly Date: 2012-10-04 15:40:29 -0700 (Thu, 04 Oct 2012) New Revision: 77468 Trac: http://trac.enlightenment.org/e/changeset/77468 Modified: trunk/ephysics/src/bin/test_soft_body.c Modified: trunk/ephysics/src/bin/test_soft_body.c =================================================================== --- trunk/ephysics/src/bin/test_soft_body.c 2012-10-04 22:40:16 UTC (rev 77467) +++ trunk/ephysics/src/bin/test_soft_body.c 2012-10-04 22:40:29 UTC (rev 77468) @@ -28,12 +28,13 @@ fall_body = ephysics_body_soft_circle_add(test_data->world); ephysics_body_soft_body_hardness_set(fall_body, 10); - ephysics_body_evas_object_set(fall_body, evas_obj, EINA_TRUE); + evas_obj = ephysics_body_evas_object_set(fall_body, evas_obj, EINA_TRUE); ephysics_body_restitution_set(fall_body, 0.95); ephysics_body_friction_set(fall_body, 0.1); ephysics_body_event_callback_add(fall_body, EPHYSICS_CALLBACK_BODY_UPDATE, update_object_cb, shadow); test_data->bodies = eina_list_append(test_data->bodies, fall_body); + test_data->evas_objs = eina_list_append(test_data->evas_objs, evas_obj); shadow = elm_layout_add(test_data->win); elm_layout_file_set( @@ -53,12 +54,13 @@ fall_body = ephysics_body_soft_circle_add(test_data->world); ephysics_body_soft_body_hardness_set(fall_body, 30); - ephysics_body_evas_object_set(fall_body, evas_obj, EINA_TRUE); + evas_obj = ephysics_body_evas_object_set(fall_body, evas_obj, EINA_TRUE); ephysics_body_restitution_set(fall_body, 0.95); ephysics_body_friction_set(fall_body, 0.1); ephysics_body_event_callback_add(fall_body, EPHYSICS_CALLBACK_BODY_UPDATE, update_object_cb, shadow); test_data->bodies = eina_list_append(test_data->bodies, fall_body); + test_data->evas_objs = eina_list_append(test_data->evas_objs, evas_obj); shadow = elm_layout_add(test_data->win); elm_layout_file_set( |
From: Enlightenment S. <no-...@en...> - 2012-10-08 22:47:05
|
Log: ephysics: cosmetic clean up on sandbox code Respect 80 cols, remove extra blank lines and blank spaces. Author: bdilly Date: 2012-10-08 15:46:58 -0700 (Mon, 08 Oct 2012) New Revision: 77595 Trac: http://trac.enlightenment.org/e/changeset/77595 Modified: trunk/ephysics/src/bin/ephysics_sandbox.c Modified: trunk/ephysics/src/bin/ephysics_sandbox.c =================================================================== --- trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-08 22:46:50 UTC (rev 77594) +++ trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-08 22:46:58 UTC (rev 77595) @@ -49,7 +49,6 @@ _world_rate_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { EPhysics_World *world = data; - ephysics_world_rate_set(world, elm_spinner_value_get(obj)); } @@ -58,8 +57,7 @@ void *event_info __UNUSED__) { EPhysics_World *world = data; - - ephysics_world_max_sleeping_time_set(world, elm_spinner_value_get(obj)); + ephysics_world_max_sleeping_time_set(world, elm_spinner_value_get(obj)); } static void @@ -68,13 +66,13 @@ Evas_Object *win = data; ephysics_body_friction_set(evas_object_data_get(win, "top"), - elm_spinner_value_get(obj)); + elm_spinner_value_get(obj)); ephysics_body_friction_set(evas_object_data_get(win, "bottom"), - elm_spinner_value_get(obj)); + elm_spinner_value_get(obj)); ephysics_body_friction_set(evas_object_data_get(win, "left"), - elm_spinner_value_get(obj)); + elm_spinner_value_get(obj)); ephysics_body_friction_set(evas_object_data_get(win, "right"), - elm_spinner_value_get(obj)); + elm_spinner_value_get(obj)); } static void @@ -83,13 +81,13 @@ Evas_Object *win = data; ephysics_body_restitution_set(evas_object_data_get(win, "top"), - elm_spinner_value_get(obj)); + elm_spinner_value_get(obj)); ephysics_body_restitution_set(evas_object_data_get(win, "bottom"), - elm_spinner_value_get(obj)); + elm_spinner_value_get(obj)); ephysics_body_restitution_set(evas_object_data_get(win, "left"), - elm_spinner_value_get(obj)); + elm_spinner_value_get(obj)); ephysics_body_restitution_set(evas_object_data_get(win, "right"), - elm_spinner_value_get(obj)); + elm_spinner_value_get(obj)); } /* static void @@ -163,9 +161,7 @@ _body_mass_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { EPhysics_Body *body = data; - ephysics_body_mass_set(body, elm_spinner_value_get(obj)); - elm_spinner_value_set(evas_object_data_get(obj, "density"), 0); } @@ -173,9 +169,7 @@ _body_density_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { EPhysics_Body *body = data; - ephysics_body_density_set(body, elm_spinner_value_get(obj)); - elm_spinner_value_set(evas_object_data_get(obj, "mass"), ephysics_body_mass_get(body)); } @@ -184,73 +178,73 @@ _body_rotation_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { EPhysics_Body *body = data; - - ephysics_body_rotation_set(body, elm_spinner_value_get(obj)); + ephysics_body_rotation_set(body, elm_spinner_value_get(obj)); } static void _body_friction_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { EPhysics_Body *body = data; - - ephysics_body_friction_set(body, elm_spinner_value_get(obj)); + ephysics_body_friction_set(body, elm_spinner_value_get(obj)); } static void _body_restitution_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { EPhysics_Body *body = data; - - ephysics_body_restitution_set(body, elm_spinner_value_get(obj)); + ephysics_body_restitution_set(body, elm_spinner_value_get(obj)); } static void -_body_damping_linear_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body_damping_linear_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) { EPhysics_Body *body = data; double angular_damping; ephysics_body_damping_get(body, NULL, &angular_damping); - ephysics_body_damping_set(body, elm_spinner_value_get(obj), angular_damping); + ephysics_body_damping_set(body, elm_spinner_value_get(obj), angular_damping); } static void -_body_damping_angular_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body_damping_angular_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) { EPhysics_Body *body = data; double linear_damping; ephysics_body_damping_get(body, &linear_damping, NULL); - ephysics_body_damping_set(body, linear_damping, elm_spinner_value_get(obj)); + ephysics_body_damping_set(body, linear_damping, elm_spinner_value_get(obj)); } static void -_body_sleeping_threshold_linear_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body_sleeping_threshold_linear_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) { EPhysics_Body *body = data; double angular_sleeping; ephysics_body_sleeping_threshold_get(body, NULL, &angular_sleeping); ephysics_body_sleeping_threshold_set(body, elm_spinner_value_get(obj), - angular_sleeping); + angular_sleeping); } static void -_body_sleeping_threshold_angular_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body_sleeping_threshold_angular_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) { EPhysics_Body *body = data; double linear_sleeping; ephysics_body_sleeping_threshold_get(body, &linear_sleeping, NULL); ephysics_body_sleeping_threshold_set(body, linear_sleeping, - elm_spinner_value_get(obj)); + elm_spinner_value_get(obj)); } static void _body_torque_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { EPhysics_Body *body = data; - ephysics_body_torque_apply(body, elm_spinner_value_get(obj)); } @@ -270,7 +264,8 @@ } static void -_body_impulse_x_rel_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body_impulse_x_rel_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) { EPhysics_Body *body = data; Evas_Object *aux; @@ -305,7 +300,8 @@ } static void -_body_impulse_y_rel_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body_impulse_y_rel_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) { EPhysics_Body *body = data; Evas_Object *aux; @@ -387,30 +383,32 @@ } static void -_body_linear_velocity_x_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body_linear_velocity_x_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) { EPhysics_Body *body = data; double ylinear; ylinear = elm_spinner_value_get(evas_object_data_get(obj, "y")); - ephysics_body_linear_velocity_set(body, elm_spinner_value_get(obj), ylinear); + ephysics_body_linear_velocity_set(body, elm_spinner_value_get(obj), ylinear); } static void -_body_linear_velocity_y_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body_linear_velocity_y_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) { EPhysics_Body *body = data; double xlinear; xlinear = elm_spinner_value_get(evas_object_data_get(obj, "x")); - ephysics_body_linear_velocity_set(body, xlinear, elm_spinner_value_get(obj)); + ephysics_body_linear_velocity_set(body, xlinear, elm_spinner_value_get(obj)); } static void -_body_angular_velocity_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body_angular_velocity_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) { EPhysics_Body *body = data; - ephysics_body_angular_velocity_set(body, elm_spinner_value_get(obj)); } /* @@ -451,10 +449,12 @@ elm_spinner_editable_set(sp, EINA_FALSE); elm_spinner_special_value_add(sp, EPHYSICS_BODY_MATERIAL_CUSTOM, "Custom"); - elm_spinner_special_value_add(sp, EPHYSICS_BODY_MATERIAL_CONCRETE, "Concrete"); + elm_spinner_special_value_add(sp, EPHYSICS_BODY_MATERIAL_CONCRETE, + "Concrete"); elm_spinner_special_value_add(sp, EPHYSICS_BODY_MATERIAL_IRON, "Iron"); elm_spinner_special_value_add(sp, EPHYSICS_BODY_MATERIAL_PLASTIC, "Plastic"); - elm_spinner_special_value_add(sp, EPHYSICS_BODY_MATERIAL_POLYSTYRENE, "Polystyrene"); + elm_spinner_special_value_add(sp, EPHYSICS_BODY_MATERIAL_POLYSTYRENE, + "Polystyrene"); elm_spinner_special_value_add(sp, EPHYSICS_BODY_MATERIAL_RUBBER, "Rubber"); elm_spinner_special_value_add(sp, EPHYSICS_BODY_MATERIAL_WOOD, "Wood"); @@ -570,38 +570,49 @@ 0, 9999, 0, 2); evas_object_data_set(aux_widget, "density", widget); evas_object_data_set(material_widget, "density", widget); - evas_object_smart_callback_add(aux_widget, "delay,changed", _body_mass_cb, body); + evas_object_smart_callback_add(aux_widget, "delay,changed", _body_mass_cb, + body); evas_object_data_set(widget, "mass", aux_widget); - evas_object_smart_callback_add(widget, "delay,changed", _body_density_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", _body_density_cb, + body); widget = _sandie_spinner_add(win, bx, "Rotation", "%1.0fº", -360, 360, 0, 2); - evas_object_smart_callback_add(widget, "delay,changed", _body_rotation_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", _body_rotation_cb, + body); widget = _sandie_spinner_add(win, bx, "Friction", "%1.3f", 0, 1, 0.5, 0.05); evas_object_data_set(material_widget, "friction", widget); - evas_object_smart_callback_add(widget, "delay,changed", _body_friction_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", _body_friction_cb, + body); widget = _sandie_spinner_add(win, bx, "Restitution", "%1.3f", 0, 1, 0, 0.05); evas_object_data_set(material_widget, "restitution", widget); - evas_object_smart_callback_add(material_widget, "delay,changed", _body_material_cb, body); - evas_object_smart_callback_add(widget, "delay,changed", _body_restitution_cb, body); + evas_object_smart_callback_add(material_widget, "delay,changed", + _body_material_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", + _body_restitution_cb, body); dbx = _sandie_double_spinner_box_add(win, bx, "Damping"); widget = _sandie_spinner_add(win, dbx, "Linear:", "%1.3f", 0, 1, 0, 0.05); - evas_object_smart_callback_add(widget, "delay,changed", _body_damping_linear_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", + _body_damping_linear_cb, body); widget = _sandie_spinner_add(win, dbx, "Angular:", "%1.3f", 0, 1, 0, 0.05); - evas_object_smart_callback_add(widget, "delay,changed", _body_damping_angular_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", + _body_damping_angular_cb, body); dbx = _sandie_double_spinner_box_add(win, bx, "Sleeping Threshold"); widget = _sandie_spinner_add(win, dbx, "Linear:", "%1.2f p/s", 0, 100, 0, 2); - evas_object_smart_callback_add(widget, "delay,changed", _body_sleeping_threshold_linear_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", + _body_sleeping_threshold_linear_cb, body); widget = _sandie_spinner_add(win, dbx, "Angular:", "%1.2f º/s", 0, 360, 0, 2); - evas_object_smart_callback_add(widget, "delay,changed", _body_sleeping_threshold_angular_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", + _body_sleeping_threshold_angular_cb, body); widget = _sandie_spinner_add(win, bx, "Torque", "%1.3f", 0, 1, 0.5, 0.05); - evas_object_smart_callback_add(widget, "delay,changed", _body_torque_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", _body_torque_cb, + body); //Impulse needs four values dbx = _sandie_double_spinner_box_add(win, bx, "Impulse X"); @@ -617,15 +628,19 @@ widget = _sandie_spinner_add(win, dbx, "Rel Position Y:", "%1.2f", 0, 360, 0, 2); evas_object_data_set(aux_widget, "rely", widget); - evas_object_smart_callback_add(aux_widget, "delay,changed", _body_impulse_x_x_cb, body); + evas_object_smart_callback_add(aux_widget, "delay,changed", + _body_impulse_x_x_cb, body); evas_object_data_set(widget, "x", aux_widget); - evas_object_smart_callback_add(widget, "delay,changed", _body_impulse_x_rel_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", + _body_impulse_x_rel_cb, body); widget = evas_object_data_get(aux_widget, "y"); evas_object_data_set(widget, "x", aux_widget); - evas_object_smart_callback_add(widget, "delay,changed", _body_impulse_y_y_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", + _body_impulse_y_y_cb, body); widget = evas_object_data_get(aux_widget, "relx"); evas_object_data_set(widget, "x", aux_widget); - evas_object_smart_callback_add(widget, "delay,changed", _body_impulse_y_rel_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", + _body_impulse_y_rel_cb, body); //Force needs four values dbx = _sandie_double_spinner_box_add(win, bx, "Force X"); @@ -641,15 +656,19 @@ widget = _sandie_spinner_add(win, dbx, "Rel Position Y:", "%1.2f", 0, 360, 0, 2); evas_object_data_set(aux_widget, "rely", widget); - evas_object_smart_callback_add(aux_widget, "delay,changed", _body_force_x_x_cb, body); + evas_object_smart_callback_add(aux_widget, "delay,changed", + _body_force_x_x_cb, body); evas_object_data_set(widget, "x", aux_widget); - evas_object_smart_callback_add(widget, "delay,changed", _body_force_x_rel_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", + _body_force_x_rel_cb, body); widget = evas_object_data_get(aux_widget, "y"); evas_object_data_set(widget, "x", aux_widget); - evas_object_smart_callback_add(widget, "delay,changed", _body_force_y_y_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", + _body_force_y_y_cb, body); widget = evas_object_data_get(aux_widget, "relx"); evas_object_data_set(widget, "x", aux_widget); - evas_object_smart_callback_add(widget, "delay,changed", _body_force_y_rel_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", + _body_force_y_rel_cb, body); dbx = _sandie_double_spinner_box_add(win, bx, "Linear Velocity"); aux_widget = _sandie_spinner_add(win, dbx, "X:", "%1.2f p/s", @@ -657,13 +676,16 @@ widget = _sandie_spinner_add(win, dbx, "Y:", "%1.2f p/s", -800, 800, 0, 2); evas_object_data_set(aux_widget, "y", widget); - evas_object_smart_callback_add(aux_widget, "delay,changed", _body_linear_velocity_x_cb, body); + evas_object_smart_callback_add(aux_widget, "delay,changed", + _body_linear_velocity_x_cb, body); evas_object_data_set(widget, "x", aux_widget); - evas_object_smart_callback_add(widget, "delay,changed", _body_linear_velocity_y_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", + _body_linear_velocity_y_cb, body); widget = _sandie_spinner_add(win, bx, "Angular Velocity", "%1.2f º/s", 0, 360, 0, 2); - evas_object_smart_callback_add(widget, "delay,changed", _body_angular_velocity_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", + _body_angular_velocity_cb, body); /* widget = _sandie_spinner_add(win, bx, "Soft Body Hardness", "%1.2f%%", 0, 100, 100, 2); elm_object_disabled_set(widget, EINA_TRUE); @@ -685,7 +707,7 @@ evas_object_resize(body_image, 70, 70); evas_object_move(body_image, x, y); evas_object_show(body_image); - + body = ephysics_body_circle_add(world); ephysics_body_evas_object_set(body, body_image, EINA_TRUE); ephysics_body_mass_set(body, 20); @@ -705,25 +727,31 @@ dbx = _sandie_double_spinner_box_add(win, bx, "Gravity"); widget = _sandie_spinner_add(win, dbx, "X:", "%1.2f m/s²", 0, 100, 0, 2); - evas_object_smart_callback_add(widget, "delay,changed", _world_gravity_x_cb, world); + evas_object_smart_callback_add(widget, "delay,changed", _world_gravity_x_cb, + world); widget = _sandie_spinner_add(win, dbx, "Y:", "%1.2f m/s²", 0, 100, 9.81, 2); - evas_object_smart_callback_add(widget, "delay,changed", _world_gravity_y_cb, world); + evas_object_smart_callback_add(widget, "delay,changed", + _world_gravity_y_cb, world); widget = _sandie_spinner_add(win, bx, "Rate", "%1.0f pixel/meter", 0, 100, 20, 2); - evas_object_smart_callback_add(widget, "delay,changed", _world_rate_cb, world); + evas_object_smart_callback_add(widget, "delay,changed", _world_rate_cb, + world); widget = _sandie_spinner_add(win, bx, "Max Sleeping Time", "%1.0f s", 0, 100, 2, 2); - evas_object_smart_callback_add(widget, "delay,changed", _world_max_sleeping_time_cb, world); + evas_object_smart_callback_add(widget, "delay,changed", + _world_max_sleeping_time_cb, world); bx = _category_add(win, bxparent, "EPhysics Boundaries"); widget = _sandie_spinner_add(win, bx, "Friction", "%1.3f", 0, 1, 0.5, 0.05); evas_object_data_set(widget, "win", win); - evas_object_smart_callback_add(widget, "delay,changed", _world_friction_cb, win); + evas_object_smart_callback_add(widget, "delay,changed", + _world_friction_cb, win); widget = _sandie_spinner_add(win, bx, "Restitution", "%1.3f", 0, 1, 0, 0.05); - evas_object_smart_callback_add(widget, "delay,changed", _world_restitution_cb, win); + evas_object_smart_callback_add(widget, "delay,changed", + _world_restitution_cb, win); } static void @@ -738,14 +766,12 @@ sandie->body1); _menu_body_items_create(sandie->win, bxparent, "EPhysics Body 2", sandie->body2); - } static void _restart(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Sandie_Data *sandie = data; - ephysics_body_del(sandie->body1); ephysics_body_del(sandie->body2); } @@ -809,7 +835,8 @@ ephysics_world_render_geometry_set(world, 80, 80, (int) WIDTH * 0.7 - 160, HEIGHT - 160); evas_object_data_set(win, "top", ephysics_body_top_boundary_add(world)); - evas_object_data_set(win, "bottom", ephysics_body_bottom_boundary_add(world)); + evas_object_data_set(win, "bottom", + ephysics_body_bottom_boundary_add(world)); evas_object_data_set(win, "left", ephysics_body_left_boundary_add(world)); evas_object_data_set(win, "right", ephysics_body_right_boundary_add(world)); |
From: Enlightenment S. <no-...@en...> - 2012-10-08 22:47:17
|
Log: ephysics: print sandbox error msgs correctly Author: bdilly Date: 2012-10-08 15:47:11 -0700 (Mon, 08 Oct 2012) New Revision: 77596 Trac: http://trac.enlightenment.org/e/changeset/77596 Modified: trunk/ephysics/src/bin/ephysics_sandbox.c Modified: trunk/ephysics/src/bin/ephysics_sandbox.c =================================================================== --- trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-08 22:46:58 UTC (rev 77595) +++ trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-08 22:47:11 UTC (rev 77596) @@ -852,7 +852,7 @@ if (!ephysics_init()) { - printf("\nFailed to init ephysics");//ERR + fprintf(stderr, "Failed to init ephysics\n"); r = -1; goto shutdown; } @@ -860,7 +860,7 @@ sandie = calloc(1, sizeof(Sandie_Data)); if (!sandie) { - printf("Failed to alloc sandie data");//ERR + fprintf(stderr, "Failed to alloc sandie data\n"); r = -1; return r; } |
From: Enlightenment S. <no-...@en...> - 2012-10-08 22:47:34
|
Log: ephysics: fix sandbox shutdown Author: bdilly Date: 2012-10-08 15:47:28 -0700 (Mon, 08 Oct 2012) New Revision: 77598 Trac: http://trac.enlightenment.org/e/changeset/77598 Modified: trunk/ephysics/src/bin/ephysics_sandbox.c Modified: trunk/ephysics/src/bin/ephysics_sandbox.c =================================================================== --- trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-08 22:47:19 UTC (rev 77597) +++ trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-08 22:47:28 UTC (rev 77598) @@ -856,7 +856,7 @@ { fprintf(stderr, "Failed to init ephysics\n"); r = -1; - goto shutdown; + goto ephysics_error; } sandie = calloc(1, sizeof(Sandie_Data)); @@ -864,7 +864,7 @@ { fprintf(stderr, "Failed to alloc sandie data\n"); r = -1; - return r; + goto data_error; } elm_theme_extension_add(NULL, PACKAGE_DATA_DIR "/" SANDBOX_THEME ".edj"); @@ -895,9 +895,10 @@ elm_run(); -shutdown: + free(sandie); +data_error: ephysics_shutdown(); - +ephysics_error: elm_shutdown(); return r; |
From: Enlightenment S. <no-...@en...> - 2012-10-09 20:00:33
|
Log: ephysics: fix sandbox gravity and rate spinners They were using wrong units, default values and not reasonable min / max. Author: bdilly Date: 2012-10-09 13:00:27 -0700 (Tue, 09 Oct 2012) New Revision: 77679 Trac: http://trac.enlightenment.org/e/changeset/77679 Modified: trunk/ephysics/src/bin/ephysics_sandbox.c Modified: trunk/ephysics/src/bin/ephysics_sandbox.c =================================================================== --- trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-09 20:00:15 UTC (rev 77678) +++ trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-09 20:00:27 UTC (rev 77679) @@ -502,10 +502,10 @@ sp = elm_spinner_add(win); elm_spinner_label_format_set(sp, itemlb); + elm_spinner_min_max_set(sp, min, max); elm_spinner_step_set(sp, step); - elm_spinner_wrap_set(sp, ELM_WRAP_CHAR); + elm_spinner_wrap_set(sp, EINA_TRUE); elm_spinner_value_set(sp, initial); - elm_spinner_min_max_set(sp, min, max); evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5); evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_box_pack_end(bxparent, sp); @@ -727,16 +727,16 @@ bx = _category_add(win, bxparent, "EPhysics World"); dbx = _sandie_double_spinner_box_add(win, bx, "Gravity"); - widget = _sandie_spinner_add(win, dbx, "X:", "%1.2f m/s²", - 0, 100, 0, 2); + widget = _sandie_spinner_add(win, dbx, "X:", "%1.2f px/s²", + -1000, 1000, 0, 2); evas_object_smart_callback_add(widget, "delay,changed", _world_gravity_x_cb, world); - widget = _sandie_spinner_add(win, dbx, "Y:", "%1.2f m/s²", - 0, 100, 9.81, 2); + widget = _sandie_spinner_add(win, dbx, "Y:", "%1.2f px/s²", + -1000, 1000, 294, 2); evas_object_smart_callback_add(widget, "delay,changed", _world_gravity_y_cb, world); widget = _sandie_spinner_add(win, bx, "Rate", "%1.0f pixel/meter", - 0, 100, 20, 2); + 1, 100, 30, 2); evas_object_smart_callback_add(widget, "delay,changed", _world_rate_cb, world); widget = _sandie_spinner_add(win, bx, "Max Sleeping Time", "%1.0f s", |
From: Enlightenment S. <no-...@en...> - 2012-10-10 19:16:43
|
Log: ephysics: fix soft body test The rigid ball was initialized inside the roof. Author: bdilly Date: 2012-10-10 12:16:37 -0700 (Wed, 10 Oct 2012) New Revision: 77773 Trac: http://trac.enlightenment.org/e/changeset/77773 Modified: trunk/ephysics/src/bin/test_soft_body.c Modified: trunk/ephysics/src/bin/test_soft_body.c =================================================================== --- trunk/ephysics/src/bin/test_soft_body.c 2012-10-10 18:46:27 UTC (rev 77772) +++ trunk/ephysics/src/bin/test_soft_body.c 2012-10-10 19:16:37 UTC (rev 77773) @@ -73,7 +73,7 @@ evas_obj = elm_image_add(test_data->win); elm_image_file_set(evas_obj, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", "big-blue-ball"); - evas_object_move(evas_obj, 200, 10); + evas_object_move(evas_obj, 200, 50); evas_object_resize(evas_obj, 70, 70); evas_object_show(evas_obj); test_data->evas_objs = eina_list_append(test_data->evas_objs, evas_obj); |
From: Enlightenment S. <no-...@en...> - 2012-10-10 20:32:42
|
Log: ephysics: add test for light Author: bdilly Date: 2012-10-10 13:32:35 -0700 (Wed, 10 Oct 2012) New Revision: 77805 Trac: http://trac.enlightenment.org/e/changeset/77805 Added: trunk/ephysics/src/bin/test_light.c Modified: trunk/ephysics/src/bin/Makefile.am trunk/ephysics/src/bin/test.c Modified: trunk/ephysics/src/bin/Makefile.am =================================================================== --- trunk/ephysics/src/bin/Makefile.am 2012-10-10 20:32:29 UTC (rev 77804) +++ trunk/ephysics/src/bin/Makefile.am 2012-10-10 20:32:35 UTC (rev 77805) @@ -32,6 +32,7 @@ test_growing_balls.c \ test_heavy.c \ test_jumping_balls.c \ +test_light.c \ test_material.c \ test_no_gravity.c \ test_rotate.c \ Modified: trunk/ephysics/src/bin/test.c =================================================================== --- trunk/ephysics/src/bin/test.c 2012-10-10 20:32:29 UTC (rev 77804) +++ trunk/ephysics/src/bin/test.c 2012-10-10 20:32:35 UTC (rev 77805) @@ -32,6 +32,7 @@ void test_growing_balls(void *data, Evas_Object *obj, void *event_info); void test_heavy(void *data, Evas_Object *obj, void *event_info); void test_jumping_balls(void *data, Evas_Object *obj, void *event_info); +void test_light(void *data, Evas_Object *obj, void *event_info); void test_material(void *data, Evas_Object *obj, void *event_info); void test_no_gravity(void *data, Evas_Object *obj, void *event_info); void test_rotate(void *data, Evas_Object *obj, void *event_info); @@ -61,6 +62,7 @@ {"Growing Balls", test_growing_balls}, {"Heavy", test_heavy}, {"Jumping Balls", test_jumping_balls}, + {"Light", test_light}, {"Material", test_material}, {"No Gravity", test_no_gravity}, {"Rotate", test_rotate}, |
From: Enlightenment S. <no-...@en...> - 2012-10-16 23:11:12
|
Log: ephysics: fix sandbox spinner values Patch by: Ricardo de Almeida Gonzaga <ri...@pr...> Author: bdilly Date: 2012-10-16 16:11:05 -0700 (Tue, 16 Oct 2012) New Revision: 78073 Trac: http://trac.enlightenment.org/e/changeset/78073 Modified: trunk/ephysics/src/bin/ephysics_sandbox.c Modified: trunk/ephysics/src/bin/ephysics_sandbox.c =================================================================== --- trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-16 22:35:50 UTC (rev 78072) +++ trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-16 23:11:05 UTC (rev 78073) @@ -578,7 +578,7 @@ type_widget = _sandie_toggle_add(win, bx, "Body Type", "Solid", "Soft"); material_widget = _sandie_enum_add(win, bx, "Body Material"); aux_widget = _sandie_spinner_add(win, bx, "Mass", "%1.3f kg", - 0, 100, 15, 2); + 0, 9999, 15, 2); widget = _sandie_spinner_add(win, bx, "Density", "%1.3f kg/m³", 0, 9999, 0, 2); evas_object_data_set(aux_widget, "density", widget); @@ -589,7 +589,7 @@ evas_object_smart_callback_add(widget, "delay,changed", _body_density_cb, body); widget = _sandie_spinner_add(win, bx, "Rotation", "%1.0fº", - -360, 360, 0, 2); + -360, 360, 0, 5); evas_object_smart_callback_add(widget, "delay,changed", _body_rotation_cb, body); widget = _sandie_spinner_add(win, bx, "Friction", "%1.3f", @@ -615,31 +615,31 @@ _body_damping_angular_cb, body); dbx = _sandie_double_spinner_box_add(win, bx, "Sleeping Threshold"); widget = _sandie_spinner_add(win, dbx, "Linear:", "%1.2f p/s", - 0, 100, 0, 2); + 0, 250, 24, 2); evas_object_smart_callback_add(widget, "delay,changed", _body_sleeping_threshold_linear_cb, body); widget = _sandie_spinner_add(win, dbx, "Angular:", "%1.2f º/s", - 0, 360, 0, 2); + 0, 360, 57.29, 5); evas_object_smart_callback_add(widget, "delay,changed", _body_sleeping_threshold_angular_cb, body); widget = _sandie_spinner_add(win, bx, "Torque", "%1.3f", - 0, 1, 0.5, 0.05); + 0, 1, 0, 0.05); evas_object_smart_callback_add(widget, "delay,changed", _body_torque_cb, body); //Impulse needs four values dbx = _sandie_double_spinner_box_add(win, bx, "Impulse X"); aux_widget = _sandie_spinner_add(win, dbx, "X:", "%1.3f kg * p/s", - -360, 360, 0, 2); + -9999, 9999, 0, 100); widget = _sandie_spinner_add(win, dbx, "Rel Position X:", "%1.2f", - 0, 360, 0, 2); + -360, 360, 0, 5); evas_object_data_set(aux_widget, "relx", widget); dbx = _sandie_double_spinner_box_add(win, bx, "Impulse Y"); widget = _sandie_spinner_add(win, dbx, "Y:", "%1.3f kg * p/s", - -360, 360, 0, 2); + -9999, 9999, 0, 100); evas_object_data_set(aux_widget, "y", widget); widget = _sandie_spinner_add(win, dbx, "Rel Position Y:", "%1.2f", - 0, 360, 0, 2); + -360, 360, 0, 5); evas_object_data_set(aux_widget, "rely", widget); evas_object_smart_callback_add(aux_widget, "delay,changed", _body_impulse_x_x_cb, body); @@ -658,16 +658,16 @@ //Force needs four values dbx = _sandie_double_spinner_box_add(win, bx, "Force X"); aux_widget = _sandie_spinner_add(win, dbx, "X:", "%1.3f kg * p/s/s", - -360, 360, 0, 2); + -1999, 1999, 0, 100); widget = _sandie_spinner_add(win, dbx, "Rel Position X:", "%1.2f", - 0, 360, 0, 2); + -360, 360, 0, 5); evas_object_data_set(aux_widget, "relx", widget); dbx = _sandie_double_spinner_box_add(win, bx, "Force Y"); widget = _sandie_spinner_add(win, dbx, "Y:", "%1.3f kg * p/s/s", - -360, 360, 0, 2); + -1999, 1999, 0, 100); evas_object_data_set(aux_widget, "y", widget); widget = _sandie_spinner_add(win, dbx, "Rel Position Y:", "%1.2f", - 0, 360, 0, 2); + -360, 360, 0, 5); evas_object_data_set(aux_widget, "rely", widget); evas_object_smart_callback_add(aux_widget, "delay,changed", _body_force_x_x_cb, body); @@ -685,9 +685,9 @@ dbx = _sandie_double_spinner_box_add(win, bx, "Linear Velocity"); aux_widget = _sandie_spinner_add(win, dbx, "X:", "%1.2f p/s", - -800, 800, 0, 2); + -1499, 1499, 0, 50); widget = _sandie_spinner_add(win, dbx, "Y:", "%1.2f p/s", - -800, 800, 0, 2); + -1499, 1499, 0, 50); evas_object_data_set(aux_widget, "y", widget); evas_object_smart_callback_add(aux_widget, "delay,changed", _body_linear_velocity_x_cb, body); @@ -696,7 +696,7 @@ _body_linear_velocity_y_cb, body); widget = _sandie_spinner_add(win, bx, "Angular Velocity", "%1.2f º/s", - 0, 360, 0, 2); + -360, 360, 0, 2); evas_object_smart_callback_add(widget, "delay,changed", _body_angular_velocity_cb, body); /* widget = _sandie_spinner_add(win, bx, "Soft Body Hardness", "%1.2f%%", @@ -751,7 +751,7 @@ evas_object_smart_callback_add(widget, "delay,changed", _world_rate_cb, world); widget = _sandie_spinner_add(win, bx, "Max Sleeping Time", "%1.0f s", - 0, 100, 2, 2); + 0, 50, 2, 2); evas_object_smart_callback_add(widget, "delay,changed", _world_max_sleeping_time_cb, world); |
From: Enlightenment S. <no-...@en...> - 2012-10-16 23:11:18
|
Log: ephysics: sandbox removed some useless widget variables Patch by: Ricardo de Almeida Gonzaga <ri...@pr...> Author: bdilly Date: 2012-10-16 16:11:11 -0700 (Tue, 16 Oct 2012) New Revision: 78074 Trac: http://trac.enlightenment.org/e/changeset/78074 Modified: trunk/ephysics/src/bin/ephysics_sandbox.c Modified: trunk/ephysics/src/bin/ephysics_sandbox.c =================================================================== --- trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-16 23:11:05 UTC (rev 78073) +++ trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-16 23:11:11 UTC (rev 78074) @@ -770,10 +770,10 @@ static void _world_populate(Sandie_Data *sandie, Evas_Object *bxparent) { - sandie->body1 = _sandie_body_add(sandie->win, sandie->world, (int) WIDTH / 4, + sandie->body1 = _sandie_body_add(sandie->win, sandie->world, (int) WIDTH / 5, (int) HEIGHT / 5); - sandie->body2 = _sandie_body_add(sandie->win, sandie->world, (int) WIDTH / 4, - (int) HEIGHT / 2); + sandie->body2 = _sandie_body_add(sandie->win, sandie->world, (int) WIDTH / 2, + (int) HEIGHT / 5); _menu_body_items_create(sandie->win, bxparent, "EPhysics Body 1", sandie->body1); @@ -792,51 +792,50 @@ static Evas_Object * _menu_create(Sandie_Data *sandie) { - Evas_Object *bx0, *fr, *lb, *bt, *sc, *bxparent, *layout; + Evas_Object *bx, *widget, *label; - layout = evas_object_data_get(sandie->win, "layout"); + bx = elm_box_add(sandie->win); + evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_object_part_content_set(evas_object_data_get(sandie->win, "layout"), + "swallow", bx); + evas_object_show(bx); - bx0 = elm_box_add(sandie->win); - evas_object_size_hint_weight_set(bx0, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_object_part_content_set(layout, "swallow", bx0); - evas_object_show(bx0); + widget = elm_frame_add(sandie->win); + elm_frame_autocollapse_set(widget, EINA_TRUE); + elm_object_text_set(widget, "EPhysics Sandbox"); + elm_box_pack_end(bx, widget); + evas_object_show(widget); - fr = elm_frame_add(sandie->win); - elm_frame_autocollapse_set(fr, EINA_TRUE); - elm_object_text_set(fr, "Information"); - elm_box_pack_end(bx0, fr); - evas_object_show(fr); + label = elm_label_add(sandie->win); + elm_object_text_set(label, "Please modify physical parameters below"); + elm_object_content_set(widget, label); + evas_object_show(label); - lb = elm_label_add(sandie->win); - elm_object_text_set(lb, - "Please modify physical parameters below<br/>" - "the test button to show the test window."); - elm_object_content_set(fr, lb); - evas_object_show(lb); + widget = elm_button_add(sandie->win); + elm_object_text_set(widget, "Restart"); + elm_box_pack_end(bx, widget); + evas_object_size_hint_min_set(widget, 100, 30); + evas_object_show(widget); + evas_object_smart_callback_add(widget, "clicked", _restart, sandie); - bt = elm_button_add(sandie->win); - elm_object_text_set(bt, " Try "); - elm_box_pack_end(bx0, bt); - evas_object_show(bt); - evas_object_smart_callback_add(bt, "clicked", _restart, sandie); + widget = elm_scroller_add(sandie->win); + elm_scroller_bounce_set(widget, EINA_FALSE, EINA_TRUE); + elm_scroller_policy_set(widget, ELM_SCROLLER_POLICY_OFF, + ELM_SCROLLER_POLICY_ON); + evas_object_size_hint_weight_set(widget, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_fill_set(widget, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(bx, widget); + evas_object_show(widget); - sc = elm_scroller_add(sandie->win); - elm_scroller_bounce_set(sc, EINA_FALSE, EINA_TRUE); - elm_scroller_policy_set(sc, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_ON); - evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_fill_set(sc, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(bx0, sc); - evas_object_show(sc); + bx = elm_box_add(sandie->win); + evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.0); + elm_object_content_set(widget, bx); + evas_object_show(bx); - bxparent = elm_box_add(sandie->win); - evas_object_size_hint_weight_set(bxparent, EVAS_HINT_EXPAND, 0.0); - evas_object_size_hint_align_set(bxparent, EVAS_HINT_FILL, 0.0); - elm_object_content_set(sc, bxparent); - evas_object_show(bxparent); + _menu_items_create(sandie->win, bx, sandie->world); - _menu_items_create(sandie->win, bxparent, sandie->world); - - return bxparent; + return bx; } static EPhysics_World * |
From: Enlightenment S. <no-...@en...> - 2012-10-16 23:11:23
|
Log: ephysics: fix sandbox callbacks Patch by: Ricardo de Almeida Gonzaga <ri...@pr...> Author: bdilly Date: 2012-10-16 16:11:16 -0700 (Tue, 16 Oct 2012) New Revision: 78075 Trac: http://trac.enlightenment.org/e/changeset/78075 Modified: trunk/ephysics/src/bin/ephysics_sandbox.c Modified: trunk/ephysics/src/bin/ephysics_sandbox.c =================================================================== --- trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-16 23:11:11 UTC (rev 78074) +++ trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-16 23:11:16 UTC (rev 78075) @@ -94,9 +94,8 @@ } /* static void -_body_type_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +_body_type_set(Evas_Object *obj, EPhysics_Body *body) { - EPhysics_Body *body = data; EPhysics_World *world; Evas_Object *body_image; double mass, rotation, friction, restitution, lin_damping, ang_damping; @@ -111,30 +110,45 @@ body_image = ephysics_body_evas_object_unset(body); world = ephysics_body_world_get(body); - ephysics_body_del(body); + ephysics_body_del(body); //FIX IT if (elm_check_state_get(obj)) { body = ephysics_body_soft_circle_add(world); ephysics_body_soft_body_hardness_set(body, 10); - elm_object_disabled_set(evas_object_data_get(obj, "hardness"), EINA_FALSE); + elm_object_disabled_set(evas_object_data_get(obj, "hardness"), + EINA_FALSE); } else { body = ephysics_body_circle_add(world); - elm_object_disabled_set(evas_object_data_get(obj, "hardness"), EINA_TRUE); + elm_object_disabled_set(evas_object_data_get(obj, "hardness"), + EINA_TRUE); } - body_image = ephysics_body_evas_object_set(body, body_image, EINA_TRUE); + ephysics_body_evas_object_set(body, body_image, EINA_TRUE); ephysics_body_mass_set(body, mass); ephysics_body_rotation_set(body, rotation); ephysics_body_friction_set(body, friction); } + +static void +_body1_type_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_type_set(obj, sandie->body1); +} + +static void +_body2_type_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_type_set(obj, sandie->body2); +} */ static void -_body_material_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body_material_set(Evas_Object *obj, EPhysics_Body *body) { - EPhysics_Body *body = data; Evas_Object *body_image; const char *material; int x, y, w, h; @@ -163,48 +177,125 @@ } static void -_body_mass_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body1_material_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_material_set(obj, sandie->body1); +} + +static void +_body2_material_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_material_set(obj, sandie->body2); +} + +static void +_body_mass_set(Evas_Object *obj, EPhysics_Body *body) +{ ephysics_body_mass_set(body, elm_spinner_value_get(obj)); elm_spinner_value_set(evas_object_data_get(obj, "density"), 0); } static void -_body_density_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body1_mass_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_mass_set(obj, sandie->body1); +} + +static void +_body2_mass_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_mass_set(obj, sandie->body2); +} + +static void +_body_density_set(Evas_Object *obj, EPhysics_Body *body) +{ ephysics_body_density_set(body, elm_spinner_value_get(obj)); elm_spinner_value_set(evas_object_data_get(obj, "mass"), ephysics_body_mass_get(body)); } static void -_body_rotation_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body1_density_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_density_set(obj, sandie->body1); +} + +static void +_body2_density_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_density_set(obj, sandie->body2); +} + +static void +_body_rotation_set(Evas_Object *obj, EPhysics_Body *body) +{ ephysics_body_rotation_set(body, 0, 0, elm_spinner_value_get(obj)); } static void -_body_friction_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body1_rotation_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_rotation_set(obj, sandie->body1); +} + +static void +_body2_rotation_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_rotation_set(obj, sandie->body2); +} + +static void +_body_friction_set(Evas_Object *obj, EPhysics_Body *body) +{ ephysics_body_friction_set(body, elm_spinner_value_get(obj)); } static void -_body_restitution_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body1_friction_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_friction_set(obj, sandie->body1); +} + +static void +_body2_friction_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_friction_set(obj, sandie->body2); +} + +static void +_body_restitution_set(Evas_Object *obj, EPhysics_Body *body) +{ ephysics_body_restitution_set(body, elm_spinner_value_get(obj)); } static void -_body_damping_linear_cb(void *data, Evas_Object *obj, - void *event_info __UNUSED__) +_body1_restitution_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_restitution_set(obj, sandie->body1); +} + +static void +_body2_restitution_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_restitution_set(obj, sandie->body2); +} + +static void +_body_damping_linear_set(Evas_Object *obj, EPhysics_Body *body) +{ double angular_damping; ephysics_body_damping_get(body, NULL, &angular_damping); @@ -212,10 +303,24 @@ } static void -_body_damping_angular_cb(void *data, Evas_Object *obj, +_body1_damping_linear_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_damping_linear_set(obj, sandie->body1); +} + +static void +_body2_damping_linear_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_damping_linear_set(obj, sandie->body2); +} + +static void +_body_damping_angular_set(Evas_Object *obj, EPhysics_Body *body) +{ double linear_damping; ephysics_body_damping_get(body, &linear_damping, NULL); @@ -223,10 +328,24 @@ } static void -_body_sleeping_threshold_linear_cb(void *data, Evas_Object *obj, - void *event_info __UNUSED__) +_body1_damping_angular_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_damping_angular_set(obj, sandie->body1); +} + +static void +_body2_damping_angular_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_damping_angular_set(obj, sandie->body2); +} + +static void +_body_sleeping_threshold_linear_set(Evas_Object *obj, EPhysics_Body *body) +{ double angular_sleeping; ephysics_body_sleeping_threshold_get(body, NULL, &angular_sleeping); @@ -235,10 +354,24 @@ } static void -_body_sleeping_threshold_angular_cb(void *data, Evas_Object *obj, +_body1_sleeping_threshold_linear_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_sleeping_threshold_linear_set(obj, sandie->body1); +} + +static void +_body2_sleeping_threshold_linear_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_sleeping_threshold_linear_set(obj, sandie->body2); +} + +static void +_body_sleeping_threshold_angular_set(Evas_Object *obj, EPhysics_Body *body) +{ double linear_sleeping; ephysics_body_sleeping_threshold_get(body, &linear_sleeping, NULL); @@ -247,16 +380,44 @@ } static void -_body_torque_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body1_sleeping_threshold_angular_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_sleeping_threshold_angular_set(obj, sandie->body1); +} + +static void +_body2_sleeping_threshold_angular_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_sleeping_threshold_angular_set(obj, sandie->body2); +} + +static void +_body_torque_set(Evas_Object *obj, EPhysics_Body *body) +{ ephysics_body_torque_apply(body, 0, 0, elm_spinner_value_get(obj)); } static void -_body_impulse_x_x_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body1_torque_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_torque_set(obj, sandie->body1); +} + +static void +_body2_torque_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_torque_set(obj, sandie->body2); +} + +static void +_body_impulse_x_x_set(Evas_Object *obj, EPhysics_Body *body) +{ Evas_Coord rel_x, rel_y; double y; @@ -269,10 +430,22 @@ } static void -_body_impulse_x_rel_cb(void *data, Evas_Object *obj, - void *event_info __UNUSED__) +_body1_impulse_x_x_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_impulse_x_x_set(obj, sandie->body1); +} + +static void +_body2_impulse_x_x_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_impulse_x_x_set(obj, sandie->body2); +} + +static void +_body_impulse_x_rel_set(Evas_Object *obj, EPhysics_Body *body) +{ Evas_Object *aux; Evas_Coord rel_y; double x, y; @@ -288,9 +461,24 @@ } static void -_body_impulse_y_y_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body1_impulse_x_rel_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_impulse_x_rel_set(obj, sandie->body1); +} + +static void +_body2_impulse_x_rel_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_impulse_x_rel_set(obj, sandie->body2); +} + +static void +_body_impulse_y_y_set(Evas_Object *obj, EPhysics_Body *body) +{ Evas_Object *aux; Evas_Coord rel_x, rel_y; double x; @@ -306,10 +494,22 @@ } static void -_body_impulse_y_rel_cb(void *data, Evas_Object *obj, - void *event_info __UNUSED__) +_body1_impulse_y_y_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_impulse_y_y_set(obj, sandie->body1); +} + +static void +_body2_impulse_y_y_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_impulse_y_y_set(obj, sandie->body2); +} + +static void +_body_impulse_y_rel_set(Evas_Object *obj, EPhysics_Body *body) +{ Evas_Object *aux; Evas_Coord rel_x; double x, y; @@ -325,9 +525,24 @@ } static void -_body_force_x_x_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body1_impulse_y_rel_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_impulse_y_rel_set(obj, sandie->body1); +} + +static void +_body2_impulse_y_rel_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_impulse_y_rel_set(obj, sandie->body2); +} + +static void +_body_force_x_x_set(Evas_Object *obj, EPhysics_Body *body) +{ Evas_Coord rel_x, rel_y; double y; @@ -340,9 +555,22 @@ } static void -_body_force_x_rel_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body1_force_x_x_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_force_x_x_set(obj, sandie->body1); +} + +static void +_body2_force_x_x_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_force_x_x_set(obj, sandie->body2); +} + +static void +_body_force_x_rel_set(Evas_Object *obj, EPhysics_Body *body) +{ Evas_Object *aux; Evas_Coord rel_y; double x, y; @@ -358,9 +586,22 @@ } static void -_body_force_y_y_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body1_force_x_rel_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_force_x_rel_set(obj, sandie->body1); +} + +static void +_body2_force_x_rel_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_force_x_rel_set(obj, sandie->body2); +} + +static void +_body_force_y_y_set(Evas_Object *obj, EPhysics_Body *body) +{ Evas_Object *aux; Evas_Coord rel_x, rel_y; double x; @@ -376,9 +617,22 @@ } static void -_body_force_y_rel_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body1_force_y_y_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_force_y_y_set(obj, sandie->body1); +} + +static void +_body2_force_y_y_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_force_y_y_set(obj, sandie->body2); +} + +static void +_body_force_y_rel_set(Evas_Object *obj, EPhysics_Body *body) +{ Evas_Object *aux; Evas_Coord rel_x; double x, y; @@ -394,10 +648,22 @@ } static void -_body_linear_velocity_x_cb(void *data, Evas_Object *obj, - void *event_info __UNUSED__) +_body1_force_y_rel_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_force_y_rel_set(obj, sandie->body1); +} + +static void +_body2_force_y_rel_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_force_y_rel_set(obj, sandie->body2); +} + +static void +_body_linear_velocity_x_set(Evas_Object *obj, EPhysics_Body *body) +{ double ylinear; ylinear = elm_spinner_value_get(evas_object_data_get(obj, "y")); @@ -406,10 +672,24 @@ } static void -_body_linear_velocity_y_cb(void *data, Evas_Object *obj, - void *event_info __UNUSED__) +_body1_linear_velocity_x_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_linear_velocity_x_set(obj, sandie->body1); +} + +static void +_body2_linear_velocity_x_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_linear_velocity_x_set(obj, sandie->body2); +} + +static void +_body_linear_velocity_y_set(Evas_Object *obj, EPhysics_Body *body) +{ double xlinear; xlinear = elm_spinner_value_get(evas_object_data_get(obj, "x")); @@ -418,22 +698,64 @@ } static void -_body_angular_velocity_cb(void *data, Evas_Object *obj, - void *event_info __UNUSED__) +_body1_linear_velocity_y_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_linear_velocity_y_set(obj, sandie->body1); +} + +static void +_body2_linear_velocity_y_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_linear_velocity_y_set(obj, sandie->body2); +} + +static void +_body_angular_velocity_set(Evas_Object *obj, EPhysics_Body *body) +{ ephysics_body_angular_velocity_set(body, 0, 0, elm_spinner_value_get(obj)); } -/* + static void -_body_hardness_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +_body1_angular_velocity_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) { - EPhysics_Body *body = data; + Sandie_Data *sandie = data; + _body_angular_velocity_set(obj, sandie->body1); +} +static void +_body2_angular_velocity_cb(void *data, Evas_Object *obj, + void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_angular_velocity_set(obj, sandie->body2); +} + +static void +_body_hardness_set(Evas_Object *obj, EPhysics_Body *body) +{ ephysics_body_soft_body_hardness_set(body, elm_spinner_value_get(obj)); } -*/ + static void +_body1_hardness_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_hardness_set(obj, sandie->body1); +} + +static void +_body2_hardness_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + Sandie_Data *sandie = data; + _body_hardness_set(obj, sandie->body2); +} + +static void _sandie_label_add(Evas_Object *win, Evas_Object *bxparent, const char *subcategory) { @@ -569,143 +891,282 @@ } static void -_menu_body_items_create(Evas_Object *win, Evas_Object *bxparent, - const char *category, EPhysics_Body *body) +_menu_body_items_create(void *data, Evas_Object *bxparent) { + Sandie_Data *sandie = data; Evas_Object *bx, *dbx, *widget, *aux_widget, *material_widget, *type_widget; - bx = _category_add(win, bxparent, category); - type_widget = _sandie_toggle_add(win, bx, "Body Type", "Solid", "Soft"); - material_widget = _sandie_enum_add(win, bx, "Body Material"); - aux_widget = _sandie_spinner_add(win, bx, "Mass", "%1.3f kg", + //Body 1 + bx = _category_add(sandie->win, bxparent, "EPhysics Body 1"); + type_widget = _sandie_toggle_add(sandie->win, bx, "Body Type", "Solid", + "Soft"); + material_widget = _sandie_enum_add(sandie->win, bx, "Body Material"); + aux_widget = _sandie_spinner_add(sandie->win, bx, "Mass", "%1.3f kg", 0, 9999, 15, 2); - widget = _sandie_spinner_add(win, bx, "Density", "%1.3f kg/m³", + widget = _sandie_spinner_add(sandie->win, bx, "Density", "%1.3f kg/m³", 0, 9999, 0, 2); evas_object_data_set(aux_widget, "density", widget); evas_object_data_set(material_widget, "density", widget); - evas_object_smart_callback_add(aux_widget, "delay,changed", _body_mass_cb, - body); + evas_object_smart_callback_add(aux_widget, "delay,changed", _body1_mass_cb, + sandie); evas_object_data_set(widget, "mass", aux_widget); - evas_object_smart_callback_add(widget, "delay,changed", _body_density_cb, - body); - widget = _sandie_spinner_add(win, bx, "Rotation", "%1.0fº", + evas_object_smart_callback_add(widget, "delay,changed", _body1_density_cb, + sandie); + widget = _sandie_spinner_add(sandie->win, bx, "Rotation", "%1.0fº", -360, 360, 0, 5); - evas_object_smart_callback_add(widget, "delay,changed", _body_rotation_cb, - body); - widget = _sandie_spinner_add(win, bx, "Friction", "%1.3f", + evas_object_smart_callback_add(widget, "delay,changed", _body1_rotation_cb, + sandie); + widget = _sandie_spinner_add(sandie->win, bx, "Friction", "%1.3f", 0, 1, 0.5, 0.05); evas_object_data_set(material_widget, "friction", widget); - evas_object_smart_callback_add(widget, "delay,changed", _body_friction_cb, - body); - widget = _sandie_spinner_add(win, bx, "Restitution", "%1.3f", + evas_object_smart_callback_add(widget, "delay,changed", _body1_friction_cb, + sandie); + widget = _sandie_spinner_add(sandie->win, bx, "Restitution", "%1.3f", 0, 1, 0, 0.05); evas_object_data_set(material_widget, "restitution", widget); evas_object_smart_callback_add(material_widget, "delay,changed", - _body_material_cb, body); + _body1_material_cb, sandie); evas_object_smart_callback_add(widget, "delay,changed", - _body_restitution_cb, body); - dbx = _sandie_double_spinner_box_add(win, bx, "Damping"); - widget = _sandie_spinner_add(win, dbx, "Linear:", "%1.3f", + _body1_restitution_cb, sandie); + dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Damping"); + widget = _sandie_spinner_add(sandie->win, dbx, "Linear:", "%1.3f", 0, 1, 0, 0.05); evas_object_smart_callback_add(widget, "delay,changed", - _body_damping_linear_cb, body); - widget = _sandie_spinner_add(win, dbx, "Angular:", "%1.3f", + _body1_damping_linear_cb, sandie); + widget = _sandie_spinner_add(sandie->win, dbx, "Angular:", "%1.3f", 0, 1, 0, 0.05); evas_object_smart_callback_add(widget, "delay,changed", - _body_damping_angular_cb, body); - dbx = _sandie_double_spinner_box_add(win, bx, "Sleeping Threshold"); - widget = _sandie_spinner_add(win, dbx, "Linear:", "%1.2f p/s", + _body1_damping_angular_cb, sandie); + dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Sleeping Threshold"); + widget = _sandie_spinner_add(sandie->win, dbx, "Linear:", "%1.2f p/s", 0, 250, 24, 2); evas_object_smart_callback_add(widget, "delay,changed", - _body_sleeping_threshold_linear_cb, body); - widget = _sandie_spinner_add(win, dbx, "Angular:", "%1.2f º/s", + _body1_sleeping_threshold_linear_cb, sandie); + widget = _sandie_spinner_add(sandie->win, dbx, "Angular:", "%1.2f º/s", 0, 360, 57.29, 5); evas_object_smart_callback_add(widget, "delay,changed", - _body_sleeping_threshold_angular_cb, body); - widget = _sandie_spinner_add(win, bx, "Torque", "%1.3f", + _body1_sleeping_threshold_angular_cb, sandie); + widget = _sandie_spinner_add(sandie->win, bx, "Torque", "%1.3f", 0, 1, 0, 0.05); - evas_object_smart_callback_add(widget, "delay,changed", _body_torque_cb, - body); + evas_object_smart_callback_add(widget, "delay,changed", _body1_torque_cb, + sandie); //Impulse needs four values - dbx = _sandie_double_spinner_box_add(win, bx, "Impulse X"); - aux_widget = _sandie_spinner_add(win, dbx, "X:", "%1.3f kg * p/s", + dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Impulse X"); + aux_widget = _sandie_spinner_add(sandie->win, dbx, "X:", "%1.3f kg * p/s", -9999, 9999, 0, 100); - widget = _sandie_spinner_add(win, dbx, "Rel Position X:", "%1.2f", + widget = _sandie_spinner_add(sandie->win, dbx, "Rel Position X:", "%1.2f", -360, 360, 0, 5); evas_object_data_set(aux_widget, "relx", widget); - dbx = _sandie_double_spinner_box_add(win, bx, "Impulse Y"); - widget = _sandie_spinner_add(win, dbx, "Y:", "%1.3f kg * p/s", + dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Impulse Y"); + widget = _sandie_spinner_add(sandie->win, dbx, "Y:", "%1.3f kg * p/s", -9999, 9999, 0, 100); evas_object_data_set(aux_widget, "y", widget); - widget = _sandie_spinner_add(win, dbx, "Rel Position Y:", "%1.2f", + widget = _sandie_spinner_add(sandie->win, dbx, "Rel Position Y:", "%1.2f", -360, 360, 0, 5); evas_object_data_set(aux_widget, "rely", widget); evas_object_smart_callback_add(aux_widget, "delay,changed", - _body_impulse_x_x_cb, body); + _body1_impulse_x_x_cb, sandie); evas_object_data_set(widget, "x", aux_widget); evas_object_smart_callback_add(widget, "delay,changed", - _body_impulse_x_rel_cb, body); + _body1_impulse_x_rel_cb, sandie); widget = evas_object_data_get(aux_widget, "y"); evas_object_data_set(widget, "x", aux_widget); evas_object_smart_callback_add(widget, "delay,changed", - _body_impulse_y_y_cb, body); + _body1_impulse_y_y_cb, sandie); widget = evas_object_data_get(aux_widget, "relx"); evas_object_data_set(widget, "x", aux_widget); evas_object_smart_callback_add(widget, "delay,changed", - _body_impulse_y_rel_cb, body); + _body1_impulse_y_rel_cb, sandie); //Force needs four values - dbx = _sandie_double_spinner_box_add(win, bx, "Force X"); - aux_widget = _sandie_spinner_add(win, dbx, "X:", "%1.3f kg * p/s/s", + dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Force X"); + aux_widget = _sandie_spinner_add(sandie->win, dbx, "X:", "%1.3f kg * p/s/s", -1999, 1999, 0, 100); - widget = _sandie_spinner_add(win, dbx, "Rel Position X:", "%1.2f", + widget = _sandie_spinner_add(sandie->win, dbx, "Rel Position X:", "%1.2f", -360, 360, 0, 5); evas_object_data_set(aux_widget, "relx", widget); - dbx = _sandie_double_spinner_box_add(win, bx, "Force Y"); - widget = _sandie_spinner_add(win, dbx, "Y:", "%1.3f kg * p/s/s", + dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Force Y"); + widget = _sandie_spinner_add(sandie->win, dbx, "Y:", "%1.3f kg * p/s/s", -1999, 1999, 0, 100); evas_object_data_set(aux_widget, "y", widget); - widget = _sandie_spinner_add(win, dbx, "Rel Position Y:", "%1.2f", + widget = _sandie_spinner_add(sandie->win, dbx, "Rel Position Y:", "%1.2f", -360, 360, 0, 5); evas_object_data_set(aux_widget, "rely", widget); evas_object_smart_callback_add(aux_widget, "delay,changed", - _body_force_x_x_cb, body); + _body1_force_x_x_cb, sandie); evas_object_data_set(widget, "x", aux_widget); evas_object_smart_callback_add(widget, "delay,changed", - _body_force_x_rel_cb, body); + _body1_force_x_rel_cb, sandie); widget = evas_object_data_get(aux_widget, "y"); evas_object_data_set(widget, "x", aux_widget); evas_object_smart_callback_add(widget, "delay,changed", - _body_force_y_y_cb, body); + _body1_force_y_y_cb, sandie); widget = evas_object_data_get(aux_widget, "relx"); evas_object_data_set(widget, "x", aux_widget); evas_object_smart_callback_add(widget, "delay,changed", - _body_force_y_rel_cb, body); + _body1_force_y_rel_cb, sandie); - dbx = _sandie_double_spinner_box_add(win, bx, "Linear Velocity"); - aux_widget = _sandie_spinner_add(win, dbx, "X:", "%1.2f p/s", + dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Linear Velocity"); + aux_widget = _sandie_spinner_add(sandie->win, dbx, "X:", "%1.2f p/s", -1499, 1499, 0, 50); - widget = _sandie_spinner_add(win, dbx, "Y:", "%1.2f p/s", + widget = _sandie_spinner_add(sandie->win, dbx, "Y:", "%1.2f p/s", -1499, 1499, 0, 50); evas_object_data_set(aux_widget, "y", widget); evas_object_smart_callback_add(aux_widget, "delay,changed", - _body_linear_velocity_x_cb, body); + _body1_linear_velocity_x_cb, sandie); evas_object_data_set(widget, "x", aux_widget); evas_object_smart_callback_add(widget, "delay,changed", - _body_linear_velocity_y_cb, body); + _body1_linear_velocity_y_cb, sandie); - widget = _sandie_spinner_add(win, bx, "Angular Velocity", "%1.2f º/s", - -360, 360, 0, 2); + widget = _sandie_spinner_add(sandie->win, bx, "Angular Velocity", + "%1.2f º/s", -360, 360, 0, 2); evas_object_smart_callback_add(widget, "delay,changed", - _body_angular_velocity_cb, body); -/* widget = _sandie_spinner_add(win, bx, "Soft Body Hardness", "%1.2f%%", - 0, 100, 100, 2); + _body1_angular_velocity_cb, sandie); + widget = _sandie_spinner_add(sandie->win, bx, "Soft Body Hardness", + "%1.2f%%", 0, 100, 100, 2); elm_object_disabled_set(widget, EINA_TRUE); - evas_object_smart_callback_add(widget, "delay,changed", _body_hardness_cb, body); + evas_object_smart_callback_add(widget, "delay,changed", _body1_hardness_cb, + sandie); evas_object_data_set(type_widget, "hardness", widget); - evas_object_smart_callback_add(type_widget, "changed", _body_type_cb, body);//FIX CB -*/ + //evas_object_smart_callback_add(type_widget, "changed", _body1_type_cb, + // sandie); + + //Body 2 + bx = _category_add(sandie->win, bxparent, "EPhysics Body 2"); + type_widget = _sandie_toggle_add(sandie->win, bx, "Body Type", "Solid", + "Soft"); + material_widget = _sandie_enum_add(sandie->win, bx, "Body Material"); + aux_widget = _sandie_spinner_add(sandie->win, bx, "Mass", "%1.3f kg", + 0, 9999, 15, 2); + widget = _sandie_spinner_add(sandie->win, bx, "Density", "%1.3f kg/m³", + 0, 9999, 0, 2); + evas_object_data_set(aux_widget, "density", widget); + evas_object_data_set(material_widget, "density", widget); + evas_object_smart_callback_add(aux_widget, "delay,changed", _body2_mass_cb, + sandie); + evas_object_data_set(widget, "mass", aux_widget); + evas_object_smart_callback_add(widget, "delay,changed", _body2_density_cb, + sandie); + widget = _sandie_spinner_add(sandie->win, bx, "Rotation", "%1.0fº", + -360, 360, 0, 5); + evas_object_smart_callback_add(widget, "delay,changed", _body2_rotation_cb, + sandie); + widget = _sandie_spinner_add(sandie->win, bx, "Friction", "%1.3f", + 0, 1, 0.5, 0.05); + evas_object_data_set(material_widget, "friction", widget); + evas_object_smart_callback_add(widget, "delay,changed", _body2_friction_cb, + sandie); + widget = _sandie_spinner_add(sandie->win, bx, "Restitution", "%1.3f", + 0, 1, 0, 0.05); + evas_object_data_set(material_widget, "restitution", widget); + evas_object_smart_callback_add(material_widget, "delay,changed", + _body2_material_cb, sandie); + evas_object_smart_callback_add(widget, "delay,changed", + _body2_restitution_cb, sandie); + dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Damping"); + widget = _sandie_spinner_add(sandie->win, dbx, "Linear:", "%1.3f", + 0, 1, 0, 0.05); + evas_object_smart_callback_add(widget, "delay,changed", + _body2_damping_linear_cb, sandie); + widget = _sandie_spinner_add(sandie->win, dbx, "Angular:", "%1.3f", + 0, 1, 0, 0.05); + evas_object_smart_callback_add(widget, "delay,changed", + _body2_damping_angular_cb, sandie); + dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Sleeping Threshold"); + widget = _sandie_spinner_add(sandie->win, dbx, "Linear:", "%1.2f p/s", + 0, 250, 24, 2); + evas_object_smart_callback_add(widget, "delay,changed", + _body2_sleeping_threshold_linear_cb, sandie); + widget = _sandie_spinner_add(sandie->win, dbx, "Angular:", "%1.2f º/s", + 0, 360, 57.29, 5); + evas_object_smart_callback_add(widget, "delay,changed", + _body2_sleeping_threshold_angular_cb, sandie); + widget = _sandie_spinner_add(sandie->win, bx, "Torque", "%1.3f", + 0, 1, 0, 0.05); + evas_object_smart_callback_add(widget, "delay,changed", _body2_torque_cb, + sandie); + + //Impulse needs four values + dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Impulse X"); + aux_widget = _sandie_spinner_add(sandie->win, dbx, "X:", "%1.3f kg * p/s", + -9999, 9999, 0, 100); + widget = _sandie_spinner_add(sandie->win, dbx, "Rel Position X:", "%1.2f", + -360, 360, 0, 5); + evas_object_data_set(aux_widget, "relx", widget); + dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Impulse Y"); + widget = _sandie_spinner_add(sandie->win, dbx, "Y:", "%1.3f kg * p/s", + -9999, 9999, 0, 100); + evas_object_data_set(aux_widget, "y", widget); + widget = _sandie_spinner_add(sandie->win, dbx, "Rel Position Y:", "%1.2f", + -360, 360, 0, 5); + evas_object_data_set(aux_widget, "rely", widget); + evas_object_smart_callback_add(aux_widget, "delay,changed", + _body2_impulse_x_x_cb, sandie); + evas_object_data_set(widget, "x", aux_widget); + evas_object_smart_callback_add(widget, "delay,changed", + _body2_impulse_x_rel_cb, sandie); + widget = evas_object_data_get(aux_widget, "y"); + evas_object_data_set(widget, "x", aux_widget); + evas_object_smart_callback_add(widget, "delay,changed", + _body2_impulse_y_y_cb, sandie); + widget = evas_object_data_get(aux_widget, "relx"); + evas_object_data_set(widget, "x", aux_widget); + evas_object_smart_callback_add(widget, "delay,changed", + _body2_impulse_y_rel_cb, sandie); + + //Force needs four values + dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Force X"); + aux_widget = _sandie_spinner_add(sandie->win, dbx, "X:", "%1.3f kg * p/s/s", + -1999, 1999, 0, 100); + widget = _sandie_spinner_add(sandie->win, dbx, "Rel Position X:", "%1.2f", + -360, 360, 0, 5); + evas_object_data_set(aux_widget, "relx", widget); + dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Force Y"); + widget = _sandie_spinner_add(sandie->win, dbx, "Y:", "%1.3f kg * p/s/s", + -1999, 1999, 0, 100); + evas_object_data_set(aux_widget, "y", widget); + widget = _sandie_spinner_add(sandie->win, dbx, "Rel Position Y:", "%1.2f", + -360, 360, 0, 5); + evas_object_data_set(aux_widget, "rely", widget); + evas_object_smart_callback_add(aux_widget, "delay,changed", + _body2_force_x_x_cb, sandie); + evas_object_data_set(widget, "x", aux_widget); + evas_object_smart_callback_add(widget, "delay,changed", + _body2_force_x_rel_cb, sandie); + widget = evas_object_data_get(aux_widget, "y"); + evas_object_data_set(widget, "x", aux_widget); + evas_object_smart_callback_add(widget, "delay,changed", + _body2_force_y_y_cb, sandie); + widget = evas_object_data_get(aux_widget, "relx"); + evas_object_data_set(widget, "x", aux_widget); + evas_object_smart_callback_add(widget, "delay,changed", + _body2_force_y_rel_cb, sandie); + + dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Linear Velocity"); + aux_widget = _sandie_spinner_add(sandie->win, dbx, "X:", "%1.2f p/s", + -1499, 1499, 0, 50); + widget = _sandie_spinner_add(sandie->win, dbx, "Y:", "%1.2f p/s", + -1499, 1499, 0, 50); + evas_object_data_set(aux_widget, "y", widget); + evas_object_smart_callback_add(aux_widget, "delay,changed", + _body2_linear_velocity_x_cb, sandie); + evas_object_data_set(widget, "x", aux_widget); + evas_object_smart_callback_add(widget, "delay,changed", + _body2_linear_velocity_y_cb, sandie); + + widget = _sandie_spinner_add(sandie->win, bx, "Angular Velocity", + "%1.2f º/s", -360, 360, 0, 2); + evas_object_smart_callback_add(widget, "delay,changed", + _body2_angular_velocity_cb, sandie); + widget = _sandie_spinner_add(sandie->win, bx, "Soft Body Hardness", + "%1.2f%%", 0, 100, 100, 2); + elm_object_disabled_set(widget, EINA_TRUE); + evas_object_smart_callback_add(widget, "delay,changed", _body2_hardness_cb, + sandie); + evas_object_data_set(type_widget, "hardness", widget); + //evas_object_smart_callback_add(type_widget, "changed", _body2_type_cb, + // sandie); } static EPhysics_Body * @@ -775,10 +1236,7 @@ sandie->body2 = _sandie_body_add(sandie->win, sandie->world, (int) WIDTH / 2, (int) HEIGHT / 5); - _menu_body_items_create(sandie->win, bxparent, "EPhysics Body 1", - sandie->body1); - _menu_body_items_create(sandie->win, bxparent, "EPhysics Body 2", - sandie->body2); + _menu_body_items_create(sandie, bxparent); } static void |
From: Enlightenment S. <no-...@en...> - 2012-10-16 23:11:27
|
Log: ephysics: fix sandbox initial impulse and material mass Patch by: Ricardo de Almeida Gonzaga <ri...@pr...> Author: bdilly Date: 2012-10-16 16:11:21 -0700 (Tue, 16 Oct 2012) New Revision: 78076 Trac: http://trac.enlightenment.org/e/changeset/78076 Modified: trunk/ephysics/src/bin/ephysics_sandbox.c Modified: trunk/ephysics/src/bin/ephysics_sandbox.c =================================================================== --- trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-16 23:11:16 UTC (rev 78075) +++ trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-16 23:11:21 UTC (rev 78076) @@ -12,6 +12,7 @@ #define WIDTH (1280) #define HEIGHT (720) #define DEPTH (100) +#define INITIAL_IMPULSE (9500) typedef struct _Sandie_Data { Evas_Object *win; @@ -155,6 +156,8 @@ ephysics_body_material_set(body, elm_spinner_value_get(obj)); + elm_spinner_value_set(evas_object_data_get(obj, "mass"), + ephysics_body_mass_get(body)); elm_spinner_value_set(evas_object_data_get(obj, "density"), ephysics_body_density_get(body)); elm_spinner_value_set(evas_object_data_get(obj, "friction"), @@ -903,6 +906,7 @@ material_widget = _sandie_enum_add(sandie->win, bx, "Body Material"); aux_widget = _sandie_spinner_add(sandie->win, bx, "Mass", "%1.3f kg", 0, 9999, 15, 2); + evas_object_data_set(material_widget, "mass", aux_widget); widget = _sandie_spinner_add(sandie->win, bx, "Density", "%1.3f kg/m³", 0, 9999, 0, 2); evas_object_data_set(aux_widget, "density", widget); @@ -954,7 +958,8 @@ //Impulse needs four values dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Impulse X"); aux_widget = _sandie_spinner_add(sandie->win, dbx, "X:", "%1.3f kg * p/s", - -9999, 9999, 0, 100); + -9999, 9999, INITIAL_IMPULSE, 100); + evas_object_data_set(sandie->win, "body1_impulsex", aux_widget); widget = _sandie_spinner_add(sandie->win, dbx, "Rel Position X:", "%1.2f", -360, 360, 0, 5); evas_object_data_set(aux_widget, "relx", widget); @@ -1039,6 +1044,7 @@ material_widget = _sandie_enum_add(sandie->win, bx, "Body Material"); aux_widget = _sandie_spinner_add(sandie->win, bx, "Mass", "%1.3f kg", 0, 9999, 15, 2); + evas_object_data_set(material_widget, "mass", aux_widget); widget = _sandie_spinner_add(sandie->win, bx, "Density", "%1.3f kg/m³", 0, 9999, 0, 2); evas_object_data_set(aux_widget, "density", widget); @@ -1090,7 +1096,8 @@ //Impulse needs four values dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Impulse X"); aux_widget = _sandie_spinner_add(sandie->win, dbx, "X:", "%1.3f kg * p/s", - -9999, 9999, 0, 100); + -9999, 9999, -INITIAL_IMPULSE, 100); + evas_object_data_set(sandie->win, "body2_impulsex", aux_widget); widget = _sandie_spinner_add(sandie->win, dbx, "Rel Position X:", "%1.2f", -360, 360, 0, 5); evas_object_data_set(aux_widget, "relx", widget); @@ -1185,7 +1192,6 @@ body = ephysics_body_circle_add(world); ephysics_body_evas_object_set(body, body_image, EINA_TRUE); ephysics_body_mass_set(body, 20); - ephysics_body_central_impulse_apply(body, 8201, 2110, 0); ephysics_body_event_callback_add(body, EPHYSICS_CALLBACK_BODY_DEL, _body_del, NULL); @@ -1236,6 +1242,9 @@ sandie->body2 = _sandie_body_add(sandie->win, sandie->world, (int) WIDTH / 2, (int) HEIGHT / 5); + ephysics_body_central_impulse_apply(sandie->body1, INITIAL_IMPULSE, 0, 0); + ephysics_body_central_impulse_apply(sandie->body2, -INITIAL_IMPULSE, 0, 0); + _menu_body_items_create(sandie, bxparent); } @@ -1243,8 +1252,22 @@ _restart(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Sandie_Data *sandie = data; - ephysics_body_del(sandie->body1); - ephysics_body_del(sandie->body2); + + ephysics_body_geometry_set(sandie->body1, (int) WIDTH / 5, (int) HEIGHT / 5, + -15, 70, 70, 30); + ephysics_body_geometry_set(sandie->body2, (int) WIDTH / 2, (int) HEIGHT / 5, + -15, 70, 70, 30); + + ephysics_body_stop(sandie->body1); + ephysics_body_stop(sandie->body2); + + ephysics_body_central_impulse_apply(sandie->body1, INITIAL_IMPULSE, 0, 0); + ephysics_body_central_impulse_apply(sandie->body2, -INITIAL_IMPULSE, 0, 0); + + elm_spinner_value_set(evas_object_data_get(sandie->win, "body1_impulsex"), + INITIAL_IMPULSE); + elm_spinner_value_set(evas_object_data_get(sandie->win, "body2_impulsex"), + -INITIAL_IMPULSE); } static Evas_Object * |
From: Enlightenment S. <no-...@en...> - 2012-10-16 23:11:36
|
Log: ephysics: changed sandbox layout to toolbar and naviframe Patch by: Ricardo de Almeida Gonzaga <ri...@pr...> Author: bdilly Date: 2012-10-16 16:11:27 -0700 (Tue, 16 Oct 2012) New Revision: 78077 Trac: http://trac.enlightenment.org/e/changeset/78077 Modified: trunk/ephysics/src/bin/ephysics_sandbox.c Modified: trunk/ephysics/src/bin/ephysics_sandbox.c =================================================================== --- trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-16 23:11:21 UTC (rev 78076) +++ trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-16 23:11:27 UTC (rev 78077) @@ -15,7 +15,7 @@ #define INITIAL_IMPULSE (9500) typedef struct _Sandie_Data { - Evas_Object *win; + Evas_Object *win, *tb, *nf; EPhysics_World *world; EPhysics_Body *body1, *body2; } Sandie_Data; @@ -759,6 +759,12 @@ } static void +_promote(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +{ + elm_naviframe_item_promote(data); +} + +static void _sandie_label_add(Evas_Object *win, Evas_Object *bxparent, const char *subcategory) { @@ -886,21 +892,61 @@ elm_box_horizontal_set(cbx, EINA_FALSE); evas_object_size_hint_weight_set(cbx, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_align_set(cbx, EVAS_HINT_FILL, 0.0); - elm_box_align_set(cbx, 0.0, 0.5); elm_object_content_set(cfr, cbx); evas_object_show(cbx); return cbx; } +static Evas_Object * +_scroller_box_add(Evas_Object *parent, Evas_Object *scbx) +{ + Evas_Object *sc = NULL, *bx = NULL; + + sc = elm_scroller_add(parent); + elm_scroller_bounce_set(sc, EINA_FALSE, EINA_TRUE); + elm_scroller_policy_set(sc, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_ON); + evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_fill_set(sc, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(scbx, sc); + evas_object_show(sc); + + bx = elm_box_add(parent); + evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(bx); + + elm_object_content_set(sc, bx); + + return bx; +} static void -_menu_body_items_create(void *data, Evas_Object *bxparent) +_menu_body_items_create(void *data) { Sandie_Data *sandie = data; - Evas_Object *bx, *dbx, *widget, *aux_widget, *material_widget, *type_widget; + Evas_Object *bx, *dbx, *bxbody1, *bxbody2, *scbxbody1, *scbxbody2; + Evas_Object *widget, *aux_widget, *material_widget, *type_widget; + Elm_Object_Item *it; + scbxbody1 = elm_box_add(sandie->win); + evas_object_size_hint_weight_set(scbxbody1, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(scbxbody1, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(scbxbody1); + + bxbody1 = _scroller_box_add(sandie->win, scbxbody1); + + scbxbody2 = elm_box_add(sandie->win); + evas_object_size_hint_weight_set(scbxbody2, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(scbxbody2, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(scbxbody2); + + bxbody2 = _scroller_box_add(sandie->win, scbxbody2); + + //Body 1 - bx = _category_add(sandie->win, bxparent, "EPhysics Body 1"); + bx = _category_add(sandie->win, bxbody1, "EPhysics Body 1"); type_widget = _sandie_toggle_add(sandie->win, bx, "Body Type", "Solid", "Soft"); material_widget = _sandie_enum_add(sandie->win, bx, "Body Material"); @@ -1037,8 +1083,16 @@ //evas_object_smart_callback_add(type_widget, "changed", _body1_type_cb, // sandie); + it = elm_naviframe_item_insert_before(sandie->nf, + evas_object_data_get(sandie->nf, + "world"), + NULL, NULL, NULL, scbxbody1, NULL); + evas_object_data_set(sandie->nf, "body1", it); + elm_naviframe_item_title_visible_set(it, EINA_FALSE); + it = elm_toolbar_item_append(sandie->tb, NULL, "Body 1", _promote, it); + //Body 2 - bx = _category_add(sandie->win, bxparent, "EPhysics Body 2"); + bx = _category_add(sandie->win, bxbody2, "EPhysics Body 2"); type_widget = _sandie_toggle_add(sandie->win, bx, "Body Type", "Solid", "Soft"); material_widget = _sandie_enum_add(sandie->win, bx, "Body Material"); @@ -1173,7 +1227,15 @@ sandie); evas_object_data_set(type_widget, "hardness", widget); //evas_object_smart_callback_add(type_widget, "changed", _body2_type_cb, - // sandie); + // sandie);*/ + + it = elm_naviframe_item_insert_before(sandie->nf, + evas_object_data_get(sandie->nf, + "body1"), + NULL, NULL, NULL, scbxbody2, NULL); + evas_object_data_set(sandie->nf, "body2", it); + elm_naviframe_item_title_visible_set(it, EINA_FALSE); + it = elm_toolbar_item_append(sandie->tb, NULL, "Body 2", _promote, it); } static EPhysics_Body * @@ -1197,13 +1259,14 @@ return body; } + static void _menu_items_create(Evas_Object *win, Evas_Object *bxparent, EPhysics_World *world) { Evas_Object *bx, *dbx, *widget; - bx = _category_add(win, bxparent, "EPhysics World"); + bx = _category_add(win, bxparent, "World"); dbx = _sandie_double_spinner_box_add(win, bx, "Gravity"); widget = _sandie_spinner_add(win, dbx, "X:", "%1.2f px/s²", -1000, 1000, 0, 2); @@ -1222,7 +1285,7 @@ evas_object_smart_callback_add(widget, "delay,changed", _world_max_sleeping_time_cb, world); - bx = _category_add(win, bxparent, "EPhysics Boundaries"); + bx = _category_add(win, bxparent, "Boundaries"); widget = _sandie_spinner_add(win, bx, "Friction", "%1.3f", 0, 1, 0.5, 0.05); evas_object_data_set(widget, "win", win); @@ -1235,7 +1298,7 @@ } static void -_world_populate(Sandie_Data *sandie, Evas_Object *bxparent) +_world_populate(Sandie_Data *sandie) { sandie->body1 = _sandie_body_add(sandie->win, sandie->world, (int) WIDTH / 5, (int) HEIGHT / 5); @@ -1245,7 +1308,7 @@ ephysics_body_central_impulse_apply(sandie->body1, INITIAL_IMPULSE, 0, 0); ephysics_body_central_impulse_apply(sandie->body2, -INITIAL_IMPULSE, 0, 0); - _menu_body_items_create(sandie, bxparent); + _menu_body_items_create(sandie); } static void @@ -1270,53 +1333,54 @@ -INITIAL_IMPULSE); } -static Evas_Object * +static void _menu_create(Sandie_Data *sandie) { - Evas_Object *bx, *widget, *label; + Evas_Object *mainbx, *scbx, *bx, *btn; + Elm_Object_Item *it; - bx = elm_box_add(sandie->win); - evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + mainbx = elm_box_add(sandie->win); + evas_object_size_hint_fill_set(mainbx, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_part_content_set(evas_object_data_get(sandie->win, "layout"), - "swallow", bx); - evas_object_show(bx); + "swallow", mainbx); + evas_object_show(mainbx); - widget = elm_frame_add(sandie->win); - elm_frame_autocollapse_set(widget, EINA_TRUE); - elm_object_text_set(widget, "EPhysics Sandbox"); - elm_box_pack_end(bx, widget); - evas_object_show(widget); + btn = elm_button_add(sandie->win); + elm_object_text_set(btn, "Restart"); + elm_box_pack_end(mainbx, btn); + evas_object_size_hint_min_set(btn, 100, 30); + evas_object_show(btn); + evas_object_smart_callback_add(btn, "clicked", _restart, sandie); - label = elm_label_add(sandie->win); - elm_object_text_set(label, "Please modify physical parameters below"); - elm_object_content_set(widget, label); - evas_object_show(label); + _sandie_label_add(sandie->win, mainbx, "EPhysics Sandbox"); - widget = elm_button_add(sandie->win); - elm_object_text_set(widget, "Restart"); - elm_box_pack_end(bx, widget); - evas_object_size_hint_min_set(widget, 100, 30); - evas_object_show(widget); - evas_object_smart_callback_add(widget, "clicked", _restart, sandie); + sandie->tb = elm_toolbar_add(sandie->win); + evas_object_size_hint_weight_set(sandie->tb, EVAS_HINT_EXPAND, 0); + evas_object_size_hint_fill_set(sandie->tb, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_toolbar_select_mode_set(sandie->tb, ELM_OBJECT_SELECT_MODE_ALWAYS); + elm_box_pack_end(mainbx, sandie->tb); + evas_object_show(sandie->tb); - widget = elm_scroller_add(sandie->win); - elm_scroller_bounce_set(widget, EINA_FALSE, EINA_TRUE); - elm_scroller_policy_set(widget, ELM_SCROLLER_POLICY_OFF, - ELM_SCROLLER_POLICY_ON); - evas_object_size_hint_weight_set(widget, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_fill_set(widget, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(bx, widget); - evas_object_show(widget); + sandie->nf = elm_naviframe_add(sandie->win); + evas_object_size_hint_weight_set(sandie->nf, EVAS_HINT_EXPAND, + EVAS_HINT_EXPAND); + evas_object_size_hint_fill_set(sandie->nf, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(mainbx, sandie->nf); + evas_object_show(sandie->nf); - bx = elm_box_add(sandie->win); - evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0); - evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, 0.0); - elm_object_content_set(widget, bx); - evas_object_show(bx); + scbx = elm_box_add(sandie->win); + evas_object_size_hint_weight_set(scbx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(scbx, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_show(scbx); + bx = _scroller_box_add(sandie->win, scbx); + _menu_items_create(sandie->win, bx, sandie->world); - return bx; + it = elm_naviframe_item_push(sandie->nf, NULL, NULL, NULL, scbx, NULL); + evas_object_data_set(sandie->nf, "world", it); + elm_naviframe_item_title_visible_set(it, EINA_FALSE); + it = elm_toolbar_item_append(sandie->tb, NULL, "World", _promote, it); } static EPhysics_World * @@ -1341,7 +1405,7 @@ elm_main() { Sandie_Data *sandie; - Evas_Object *layout, *bxparent; + Evas_Object *layout; short int r = 0; if (!ephysics_init()) @@ -1381,9 +1445,9 @@ sandie->world = _sandie_world_add(sandie->win); - bxparent = _menu_create(sandie); + _menu_create(sandie); - _world_populate(sandie, bxparent); + _world_populate(sandie); elm_run(); |
From: Enlightenment S. <no-...@en...> - 2012-10-16 23:11:39
|
Log: ephysics: changed sandbox toggle to radio Patch by: Ricardo de Almeida Gonzaga <ri...@pr...> Author: bdilly Date: 2012-10-16 16:11:32 -0700 (Tue, 16 Oct 2012) New Revision: 78078 Trac: http://trac.enlightenment.org/e/changeset/78078 Modified: trunk/ephysics/src/bin/ephysics_sandbox.c Modified: trunk/ephysics/src/bin/ephysics_sandbox.c =================================================================== --- trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-16 23:11:27 UTC (rev 78077) +++ trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-16 23:11:32 UTC (rev 78078) @@ -113,7 +113,7 @@ ephysics_body_del(body); //FIX IT - if (elm_check_state_get(obj)) + if (elm_radio_value_get(obj)) { body = ephysics_body_soft_circle_add(world); ephysics_body_soft_body_hardness_set(body, 10); @@ -813,24 +813,41 @@ } static Evas_Object * -_sandie_toggle_add(Evas_Object *win, Evas_Object *bxparent, - const char *subcategory, const char *labeloff, - const char *labelon) +_sandie_radio_add(Evas_Object *win, Evas_Object *bxparent, + const char *subcategory, const char *labeloff, + const char *labelon) { - Evas_Object *tg; + Evas_Object *dbx, *rd, *rdg; _sandie_label_add(win, bxparent, subcategory); - tg = elm_check_add(win); - elm_object_style_set(tg, "toggle"); - elm_object_part_text_set(tg, "off", labeloff); - elm_object_part_text_set(tg, "on", labelon); - evas_object_size_hint_align_set(tg, 0.5, 0.5); - evas_object_size_hint_weight_set(tg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - elm_box_pack_end(bxparent, tg); - evas_object_show(tg); + dbx = elm_box_add(win); + elm_box_horizontal_set(dbx, EINA_TRUE); + evas_object_size_hint_weight_set(dbx, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(dbx, EVAS_HINT_FILL, 0.0); + elm_box_align_set(dbx, 0.0, 0.5); + elm_box_pack_end(bxparent, dbx); + evas_object_show(dbx); - return tg; + rd = elm_radio_add(win); + elm_radio_state_value_set(rd, 0); + elm_object_text_set(rd, labeloff); + evas_object_size_hint_align_set(rd, 0.5, 0.5); + evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_box_pack_end(dbx, rd); + evas_object_show(rd); + rdg = rd; + + rd = elm_radio_add(win); + elm_radio_state_value_set(rd, 1); + elm_radio_group_add(rd, rdg); + elm_object_text_set(rd, labelon); + evas_object_size_hint_align_set(rd, 0.5, 0.5); + evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_box_pack_end(dbx, rd); + evas_object_show(rd); + + return rdg; } static Evas_Object * @@ -947,7 +964,7 @@ //Body 1 bx = _category_add(sandie->win, bxbody1, "EPhysics Body 1"); - type_widget = _sandie_toggle_add(sandie->win, bx, "Body Type", "Solid", + type_widget = _sandie_radio_add(sandie->win, bx, "<b>Body Type</b>", "Solid", "Soft"); material_widget = _sandie_enum_add(sandie->win, bx, "Body Material"); aux_widget = _sandie_spinner_add(sandie->win, bx, "Mass", "%1.3f kg", @@ -1093,7 +1110,7 @@ //Body 2 bx = _category_add(sandie->win, bxbody2, "EPhysics Body 2"); - type_widget = _sandie_toggle_add(sandie->win, bx, "Body Type", "Solid", + type_widget = _sandie_radio_add(sandie->win, bx, "<b>Body Type</b>", "Solid", "Soft"); material_widget = _sandie_enum_add(sandie->win, bx, "Body Material"); aux_widget = _sandie_spinner_add(sandie->win, bx, "Mass", "%1.3f kg", |
From: Enlightenment S. <no-...@en...> - 2012-10-16 23:12:04
|
Log: ephysics: sandbox widgets divided into smaller categories Patch by: Ricardo de Almeida Gonzaga <ri...@pr...> Author: bdilly Date: 2012-10-16 16:11:58 -0700 (Tue, 16 Oct 2012) New Revision: 78079 Trac: http://trac.enlightenment.org/e/changeset/78079 Modified: trunk/ephysics/src/bin/ephysics_sandbox.c Modified: trunk/ephysics/src/bin/ephysics_sandbox.c =================================================================== --- trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-16 23:11:32 UTC (rev 78078) +++ trunk/ephysics/src/bin/ephysics_sandbox.c 2012-10-16 23:11:58 UTC (rev 78079) @@ -893,12 +893,13 @@ } static Evas_Object * -_category_add(Evas_Object *win, Evas_Object *bxparent, const char *label) +_category_add(Evas_Object *win, Evas_Object *bxparent, const char *label, + Eina_Bool collapse) { Evas_Object *cfr, *cbx; cfr = elm_frame_add(win); - elm_frame_autocollapse_set(cfr, EINA_TRUE); + elm_frame_autocollapse_set(cfr, collapse); elm_object_text_set(cfr, label); evas_object_size_hint_weight_set(cfr, EVAS_HINT_EXPAND, 0.0); evas_object_size_hint_fill_set(cfr, EVAS_HINT_FILL, 0.0); @@ -963,10 +964,14 @@ //Body 1 - bx = _category_add(sandie->win, bxbody1, "EPhysics Body 1"); + bx = _category_add(sandie->win, bxbody1, "", EINA_FALSE); + type_widget = _sandie_radio_add(sandie->win, bx, "<b>Body Type</b>", "Solid", "Soft"); material_widget = _sandie_enum_add(sandie->win, bx, "Body Material"); + + bx = _category_add(sandie->win, bxbody1, "Properties", EINA_TRUE); + aux_widget = _sandie_spinner_add(sandie->win, bx, "Mass", "%1.3f kg", 0, 9999, 15, 2); evas_object_data_set(material_widget, "mass", aux_widget); @@ -995,6 +1000,10 @@ _body1_material_cb, sandie); evas_object_smart_callback_add(widget, "delay,changed", _body1_restitution_cb, sandie); + widget = _sandie_spinner_add(sandie->win, bx, "Torque", "%1.3f", + 0, 1, 0, 0.05); + evas_object_smart_callback_add(widget, "delay,changed", _body1_torque_cb, + sandie); dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Damping"); widget = _sandie_spinner_add(sandie->win, dbx, "Linear:", "%1.3f", 0, 1, 0, 0.05); @@ -1013,11 +1022,9 @@ 0, 360, 57.29, 5); evas_object_smart_callback_add(widget, "delay,changed", _body1_sleeping_threshold_angular_cb, sandie); - widget = _sandie_spinner_add(sandie->win, bx, "Torque", "%1.3f", - 0, 1, 0, 0.05); - evas_object_smart_callback_add(widget, "delay,changed", _body1_torque_cb, - sandie); + bx = _category_add(sandie->win, bxbody1, "Actions", EINA_TRUE); + //Impulse needs four values dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Impulse X"); aux_widget = _sandie_spinner_add(sandie->win, dbx, "X:", "%1.3f kg * p/s", @@ -1091,7 +1098,10 @@ "%1.2f º/s", -360, 360, 0, 2); evas_object_smart_callback_add(widget, "delay,changed", _body1_angular_velocity_cb, sandie); - widget = _sandie_spinner_add(sandie->win, bx, "Soft Body Hardness", + + bx = _category_add(sandie->win, bxbody1, "Soft Body", EINA_TRUE); + + widget = _sandie_spinner_add(sandie->win, bx, "Hardness", "%1.2f%%", 0, 100, 100, 2); elm_object_disabled_set(widget, EINA_TRUE); evas_object_smart_callback_add(widget, "delay,changed", _body1_hardness_cb, @@ -1109,10 +1119,14 @@ it = elm_toolbar_item_append(sandie->tb, NULL, "Body 1", _promote, it); //Body 2 - bx = _category_add(sandie->win, bxbody2, "EPhysics Body 2"); + bx = _category_add(sandie->win, bxbody2, "", EINA_FALSE); + type_widget = _sandie_radio_add(sandie->win, bx, "<b>Body Type</b>", "Solid", "Soft"); material_widget = _sandie_enum_add(sandie->win, bx, "Body Material"); + + bx = _category_add(sandie->win, bxbody2, "Properties", EINA_TRUE); + aux_widget = _sandie_spinner_add(sandie->win, bx, "Mass", "%1.3f kg", 0, 9999, 15, 2); evas_object_data_set(material_widget, "mass", aux_widget); @@ -1141,6 +1155,10 @@ _body2_material_cb, sandie); evas_object_smart_callback_add(widget, "delay,changed", _body2_restitution_cb, sandie); + widget = _sandie_spinner_add(sandie->win, bx, "Torque", "%1.3f", + 0, 1, 0, 0.05); + evas_object_smart_callback_add(widget, "delay,changed", _body2_torque_cb, + sandie); dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Damping"); widget = _sandie_spinner_add(sandie->win, dbx, "Linear:", "%1.3f", 0, 1, 0, 0.05); @@ -1159,11 +1177,9 @@ 0, 360, 57.29, 5); evas_object_smart_callback_add(widget, "delay,changed", _body2_sleeping_threshold_angular_cb, sandie); - widget = _sandie_spinner_add(sandie->win, bx, "Torque", "%1.3f", - 0, 1, 0, 0.05); - evas_object_smart_callback_add(widget, "delay,changed", _body2_torque_cb, - sandie); + bx = _category_add(sandie->win, bxbody2, "Actions", EINA_TRUE); + //Impulse needs four values dbx = _sandie_double_spinner_box_add(sandie->win, bx, "Impulse X"); aux_widget = _sandie_spinner_add(sandie->win, dbx, "X:", "%1.3f kg * p/s", @@ -1237,7 +1253,10 @@ "%1.2f º/s", -360, 360, 0, 2); evas_object_smart_callback_add(widget, "delay,changed", _body2_angular_velocity_cb, sandie); - widget = _sandie_spinner_add(sandie->win, bx, "Soft Body Hardness", + + bx = _category_add(sandie->win, bxbody2, "Soft Body", EINA_TRUE); + + widget = _sandie_spinner_add(sandie->win, bx, "Hardness", "%1.2f%%", 0, 100, 100, 2); elm_object_disabled_set(widget, EINA_TRUE); evas_object_smart_callback_add(widget, "delay,changed", _body2_hardness_cb, @@ -1283,7 +1302,7 @@ { Evas_Object *bx, *dbx, *widget; - bx = _category_add(win, bxparent, "World"); + bx = _category_add(win, bxparent, "World", EINA_TRUE); dbx = _sandie_double_spinner_box_add(win, bx, "Gravity"); widget = _sandie_spinner_add(win, dbx, "X:", "%1.2f px/s²", -1000, 1000, 0, 2); @@ -1302,7 +1321,7 @@ evas_object_smart_callback_add(widget, "delay,changed", _world_max_sleeping_time_cb, world); - bx = _category_add(win, bxparent, "Boundaries"); + bx = _category_add(win, bxparent, "Boundaries", EINA_TRUE); widget = _sandie_spinner_add(win, bx, "Friction", "%1.3f", 0, 1, 0.5, 0.05); evas_object_data_set(widget, "win", win); |