From 7df4546acfec629552459f114e8b1f159e2cca47 Mon Sep 17 00:00:00 2001 From: Leandro Dorileo Date: Mon, 3 Dec 2012 21:29:42 +0000 Subject: [PATCH] EPhysics: soft button improvements Use a bigger image to soft button tests, add light on/off button, use of anchor hardness API. --This line, and those below, will be ignored-- SVN revision: 80108 --- legacy/ephysics/data/themes/Makefile.am | 1 + legacy/ephysics/data/themes/cubes.edc | 1 + .../data/themes/images/cube-purple420.png | Bin 0 -> 25498 bytes legacy/ephysics/src/bin/test_soft_button.c | 58 +++++++++++++----- 4 files changed, 45 insertions(+), 15 deletions(-) create mode 100644 legacy/ephysics/data/themes/images/cube-purple420.png diff --git a/legacy/ephysics/data/themes/Makefile.am b/legacy/ephysics/data/themes/Makefile.am index bfd6505990..f25c080875 100644 --- a/legacy/ephysics/data/themes/Makefile.am +++ b/legacy/ephysics/data/themes/Makefile.am @@ -52,6 +52,7 @@ TEST_FILES = \ images/collisionL.png \ images/cube-blue.png \ images/cube-purple.png \ + images/cube-purple420.png \ images/cube_back.png \ images/cube_bottom.png \ images/cube_front.png \ diff --git a/legacy/ephysics/data/themes/cubes.edc b/legacy/ephysics/data/themes/cubes.edc index f6d99b6180..83540c253a 100644 --- a/legacy/ephysics/data/themes/cubes.edc +++ b/legacy/ephysics/data/themes/cubes.edc @@ -20,6 +20,7 @@ ADD_CUBE(blue-cube, cube-blue); ADD_CUBE(purple-cube, cube-purple); +ADD_CUBE(purple-cube420, cube-purple420); ADD_CUBE(cube_top, cube_top); ADD_CUBE(cube_bottom, cube_bottom); ADD_CUBE(cube_front, cube_front); diff --git a/legacy/ephysics/data/themes/images/cube-purple420.png b/legacy/ephysics/data/themes/images/cube-purple420.png new file mode 100644 index 0000000000000000000000000000000000000000..ac153afe1b133fcd3bd05493ef79eea32c7b49cf GIT binary patch literal 25498 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.x - (w / 2); y = mdown->output.y - (h / 2); zz = z + (d / 2); - d = z; + d = d / 2; triangles = ephysics_body_soft_body_triangles_inside_get(body, x, y, zz, w, h, d); ephysics_body_soft_body_triangle_list_impulse_apply(body, triangles, 0, 0, - -100); + 200); EINA_LIST_FREE(triangles, ldata) free(ldata); } @@ -37,23 +37,30 @@ _soft_ellipsoid_add(Test_Data *test_data, Evas_Object *front_face, Evas_Object * Evas_Coord w, h; - body = ephysics_body_soft_ellipsoid_add(test_data->world, 100); + body = ephysics_body_soft_ellipsoid_add(test_data->world, 500); + + ephysics_body_soft_body_position_iterations_set(body, 16); + ephysics_body_soft_body_anchor_hardness_set(body, 0); + ephysics_body_soft_body_hardness_set(body, 3); ephysics_body_face_evas_object_set(body, - EPHYSICS_BODY_SOFT_ELLIPSOID_FACE_FRONT, front_face, EINA_TRUE); + EPHYSICS_BODY_SOFT_ELLIPSOID_FACE_FRONT, + front_face, EINA_TRUE); ephysics_body_face_evas_object_set(body, - EPHYSICS_BODY_SOFT_ELLIPSOID_FACE_BACK, back_face, EINA_TRUE); + EPHYSICS_BODY_SOFT_ELLIPSOID_FACE_BACK, + back_face, EINA_TRUE); ephysics_body_geometry_get(body, NULL, NULL, NULL, &w, &h, NULL); ephysics_body_resize(body, w, h, h); - test_data->bodies = eina_list_append(test_data->bodies, body); ephysics_body_linear_movement_enable_set(body, EINA_FALSE, EINA_FALSE, EINA_FALSE); ephysics_body_angular_movement_enable_set(body, EINA_FALSE, EINA_FALSE, EINA_FALSE); + test_data->bodies = eina_list_append(test_data->bodies, body); + evas_object_event_callback_add(front_face, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb, body); @@ -68,17 +75,19 @@ _world_populate(Test_Data *test_data) front_face = elm_image_add(test_data->win); elm_image_file_set( - front_face, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", "blue-cube"); - evas_object_move(front_face, WIDTH / 2 - 35, HEIGHT / 2 - 35); - evas_object_resize(front_face, 70, 70); + front_face, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", + "purple-cube420"); + evas_object_move(front_face, WIDTH / 4, HEIGHT / 4); + evas_object_resize(front_face, 280, 280); evas_object_show(front_face); test_data->evas_objs = eina_list_append(test_data->evas_objs, front_face); back_face = elm_image_add(test_data->win); elm_image_file_set( - back_face, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", "blue-cube"); - evas_object_move(back_face, WIDTH / 2 - 35, HEIGHT / 2 - 35); - evas_object_resize(back_face, 70, 70); + back_face, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", + "purple-cube420"); + evas_object_move(back_face, WIDTH / 4, HEIGHT / 4); + evas_object_resize(back_face, 280, 280); evas_object_show(back_face); test_data->evas_objs = eina_list_append(test_data->evas_objs, back_face); @@ -95,11 +104,19 @@ _restart(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED_ _world_populate(test_data); } +static void +_changed_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__) +{ + EPhysics_World *world = data; + ephysics_world_light_all_bodies_set(world, elm_check_state_get(obj)); +} + void test_soft_button(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { EPhysics_World *world; Test_Data *test_data; + Evas_Object *tg; if (!ephysics_init()) return; @@ -111,13 +128,24 @@ test_soft_button(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event _restart, test_data); elm_object_signal_emit(test_data->layout, "borders,show", "ephysics_test"); + tg = elm_check_add(test_data->win); + elm_object_style_set(tg, "ephysics-test"); + evas_object_size_hint_weight_set(tg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(tg, EVAS_HINT_FILL, 0.5); + elm_check_state_set(tg, EINA_FALSE); + evas_object_show(tg); + elm_layout_content_set(test_data->layout, "extra_input", tg); + world = ephysics_world_new(); - ephysics_world_simulation_set(world, 1/150.f, 5); + ephysics_world_simulation_set(world, 1/260.f, 5); ephysics_world_render_geometry_set(world, 50, 40, -50, WIDTH - 100, FLOOR_Y - 40, DEPTH); test_data->world = world; ephysics_world_point_light_position_set(world, 300, 50, -200); + ephysics_camera_perspective_enabled_set(ephysics_world_camera_get(world), + EINA_TRUE); + evas_object_smart_callback_add(tg, "changed", _changed_cb, world); _world_populate(test_data); }