From 06bf7b0761e73d0410fb99100b600bb5cde4f92f Mon Sep 17 00:00:00 2001 From: Bruno Dilly Date: Fri, 9 Nov 2012 18:53:26 +0000 Subject: [PATCH] ephysics: add dices test SVN revision: 79047 --- legacy/ephysics/data/themes/Makefile.am | 6 + legacy/ephysics/data/themes/cubes.edc | 7 + legacy/ephysics/data/themes/images/dice1.png | Bin 0 -> 1959 bytes legacy/ephysics/data/themes/images/dice2.png | Bin 0 -> 2724 bytes legacy/ephysics/data/themes/images/dice3.png | Bin 0 -> 2964 bytes legacy/ephysics/data/themes/images/dice4.png | Bin 0 -> 3233 bytes legacy/ephysics/data/themes/images/dice5.png | Bin 0 -> 3928 bytes legacy/ephysics/data/themes/images/dice6.png | Bin 0 -> 4396 bytes legacy/ephysics/src/bin/Makefile.am | 1 + legacy/ephysics/src/bin/test.c | 2 + legacy/ephysics/src/bin/test_bouncing_3d.c | 2 +- legacy/ephysics/src/bin/test_dices.c | 128 +++++++++++++++++++ 12 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 legacy/ephysics/data/themes/images/dice1.png create mode 100644 legacy/ephysics/data/themes/images/dice2.png create mode 100644 legacy/ephysics/data/themes/images/dice3.png create mode 100644 legacy/ephysics/data/themes/images/dice4.png create mode 100644 legacy/ephysics/data/themes/images/dice5.png create mode 100644 legacy/ephysics/data/themes/images/dice6.png create mode 100644 legacy/ephysics/src/bin/test_dices.c diff --git a/legacy/ephysics/data/themes/Makefile.am b/legacy/ephysics/data/themes/Makefile.am index ff2baecd90..8bc5c6a869 100644 --- a/legacy/ephysics/data/themes/Makefile.am +++ b/legacy/ephysics/data/themes/Makefile.am @@ -45,6 +45,12 @@ TEST_FILES = \ images/collisionL.png \ images/cube-blue.png \ images/cube-purple.png \ + images/dice1.png \ + images/dice2.png \ + images/dice3.png \ + images/dice4.png \ + images/dice5.png \ + images/dice6.png \ images/green-flag.png \ images/hexagon.png \ images/list-item.png \ diff --git a/legacy/ephysics/data/themes/cubes.edc b/legacy/ephysics/data/themes/cubes.edc index f5d1fb17b5..b2be72a289 100644 --- a/legacy/ephysics/data/themes/cubes.edc +++ b/legacy/ephysics/data/themes/cubes.edc @@ -21,4 +21,11 @@ ADD_CUBE(blue-cube, cube-blue); ADD_CUBE(purple-cube, cube-purple); +ADD_CUBE(dice1, dice1); +ADD_CUBE(dice2, dice2); +ADD_CUBE(dice3, dice3); +ADD_CUBE(dice4, dice4); +ADD_CUBE(dice5, dice5); +ADD_CUBE(dice6, dice6); + #undef ADD_CUBE diff --git a/legacy/ephysics/data/themes/images/dice1.png b/legacy/ephysics/data/themes/images/dice1.png new file mode 100644 index 0000000000000000000000000000000000000000..ae88d4a1f5a99a7f96b4859fe184f705acb6cefc GIT binary patch literal 1959 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 literal 0 HcmV?d00001 diff --git a/legacy/ephysics/data/themes/images/dice5.png b/legacy/ephysics/data/themes/images/dice5.png new file mode 100644 index 0000000000000000000000000000000000000000..f830667fd04b219f40c2355b111329a1983bf803 GIT binary patch literal 3928 zcmbVPc{tST+qYzitYs<67!nFIgTXZR8A}>!?7L}ZFqWAyGZq zYc<(_c{y0$-SdI{tmP;T=|Hn4dD4P06g-uE+n884`*ZJ^d{Ii z&>T?bVOWyCDrR3smF`bwX|u7x_32~`))!9$T*7-1h`PYl+6EwifYSxqYob6XvN7J9 zU=~WjTZdZOU_*VeIyj)d9so{kz>Gz@_5??olJG%`$0EjTz>HCSDhMDbDs>*(n0V?ZD(ED05A2$6=Ns}QMjzYq|3 zDwaYZ(+DIYU>^~4i4;iF1+qN-D+GTs3iS^#k@|O{SSeGZW5{Y?Rgjv$|9)J5N>gcQ z{QtP|uhLYT5Hem3ji-_VDOgrLJmr2VvvT*}4eblEyn$I!2&|%D{17B;pg*2SGe_tG zStqJE0uE-Ptz`lRYiWSAARwqV7_1F}80tXPp7+vw{@V36ZNp*}LpN>-xL$ z2>ExOWD_9ELWHcI82QxeJsyXKU7)cj9|%>55eM9O;MXm7S7sS$Um1)dAB2vf}ktX2a@VCw$2f zp)*^H&be3IWAfbwgaF-^%~dCrw~+K8S)PdDLrbg^vCRruJ&rt`+pZjFU60NJ4P+5O z%C3hgp_y=C@4AIy>4{0=gQDh5xd4-~k{)hll(^~S-uS2B$Z~ji-KBLj60Udg=7n?1 zf_p;sU+?#K&I!g{q3;fSno4V(O{-skZ5NGO+ke*Cg=L&yF|y6DtQ*`NxH;Ha`=UC- zj;Vt5eO5R2U}yL6(-R*Y&h8BN?$+mr%@SU^V)(Xw2K)1CFE>_M1&_lvhGuv8?A|hs zj+FJs3a+Y!I$7-zt?GCTfsrns!T^9Zb+<+v1lQ@5NpZh(_Is+lap+UQGD|KwX@k;t zo$jly%{U=#$m=J5fCMz$uU`DV=v!c3h*m9sq13Sv`IBLBBvkqFC_qV1zvM=y_}lSt z4v_;GvYy_Jp5?R32C{%q;qh2v*nymnv`GHEFaDyq^yp&F3iCm3^UCF&g&-N2sRAPB zV=O!;U4qFy$9x3u^yt=k?#D@%DTwC?VN-n|3v7RdTNk}7U^BkWn+8XoNf1%e%F!ww zrHhhQ_KxlDxp+Kxr@l8E`0SBWURpQM`e=?cRAAG!E=*2p#Kqj+UMvaT!6!7wtJc0WI**GVtieu8X{q#(L18II0fql zMuwSzVs!G;^0E4tZ}!Zt&T)vmdH5>29vCLIj0*2g)wMcra?s2$n+N2 zi$IqwhB&fy(#9esSg)XDK7+@E$I`_^;|iC2;tRI(%&|i`7rLGf16$P_s;30}%`Av(I_{WZSA>Zh-*#Rl0 z^&7>J&H_f>(=8qIk&Mbyq^E~k1`RxJ_tCx)UyYlC41)X8=MG7rrX|D Nqr$LOPh zP)o(`y)DqUVjH%%iQ}EI?sN#J?F5KpdE;!K!8qs8z}aegltP(Nat+qCdB&LLy_I*Z z(IV#R>F-hRkX?zoDnUFMkrfY{yU)H<7!UGtQR>?c9^Uwn*_oEAiR}B2^ugcm?QIC84;8b{_|iE!#a8*w|xF>uCV(V#+3k%56A6; zJwXPiaL5aq7I`BTpZf|gcf8GA?H)T-Qe+D_`-o#n@+^n1`L56Q02e3F|b6IX76 zdUuC6@7F&mt3+BN*>kx^Iexnpl9V@p$Gj=YVVyB8&yi9q*l@__#Wgb>Si@ys9Axiv zV=D&Ued{%C@zLbB%8gn7xZio_TZ-()BO+u~eQV77u3d|X^^iWT(~*~tGeijY)IK_O zj1e_&vo?Dkp3)OoaU@>wezmqf^ub`ovafEnOU-tY`zd4QmhD#M;^`;O?M<+^)#N3S zwu-ysj?MQDzEpqcAXD@j+xm(}0&&v!)qUkEkRiUW>STa|w#;#N4=hExa8XxowPEPY z9Yr`{n;bEO_}|mNE*bo2tCn9#R!L2e+#H1Bd|T!gJrpw~-Ojbh;~mlBs2yoZFGnOdln4FapUhsnDDd%nbkkhY|gS3h|u zb!U5X$7BYixjP>j;E`JQBR_PTa^(K1n5p+pK@Xq)#s4;HB5Gdy0<>6p;h?)r^|uw0 z7}z@c505ExHvC=lPIZba$zralOIK*sZ>)BFY`Pudp;09)JE)xCV|YK4H*Y1P{3P7V zi$|a4l{OM*F;Nw37GK!t;Ix_Rln}g-qoU9dNX)5Bx9UOWyZSlz{<^z zXWa_`lyQDhu;pgN1_tv_q2ociV87xrgSO2Mk!eXe>9Fr0H{ZrfwLtlUFDi!yq2Kjn z1gZmz1V-A64&^>EI3+v({YRKO{ZRIUX@OL5x{pTpS565M$BREE@|!e8QG;2)D5)*JQIt9 z*%|;p==I-vuibk%Xn8P~ID=EqoSJWN1c+r@_2;>bEtSL4KEjhZiZUG~wYrwqD``n7 zM_sO&r2swowK&oJ{2RB-y8&G_EJdC%7Zu?V?ZOEz^buGJ7)*llHub5b2xpB|-^x>#;)c zW4h*TkKrae^dKwO_r3O}i4BRyo|UEAT=Kc*?G2?W3O>Rv8;9Pcx-2ilzw+gIUo|@V zl$agreD^qK)7JdFdVGlv!1Z*KBO1JxYA&Q>dppH`htIxK9ZOZ*yvk@*O-UsyUUB!H zxKmoD6@-YQ7*KQz=~D7F#rc;4>ssM1j5Tp0t(Ke_cP|%X0(+cDJwc$DRGuRSo45z6F=}BoPDetUHEwL=jL3(-eC{6kWKQqUQ|f!{=cp{ L(h^Z(EJa;o48}6U%-EMKDTc9=Ep2WgOGGG< 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 +#endif + +#include "ephysics_test.h" + +static Evas_Object * +_obj_face_add(Test_Data *test_data, const char *group, Evas_Coord x, Evas_Coord y) +{ + Evas_Object *obj; + + obj = elm_image_add(test_data->win); + elm_image_file_set(obj, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", + group); + evas_object_move(obj, x, y); + evas_object_resize(obj, 70, 70); + evas_object_show(obj); + test_data->evas_objs = eina_list_append(test_data->evas_objs, obj); + + return obj; +} + +static EPhysics_Body * +_box_add(Test_Data *test_data, Evas_Coord x, Evas_Coord y) +{ + Evas_Object *front, *back, *top, *bottom, *right, *left, *shadow; + EPhysics_Body *box; + + shadow = elm_layout_add(test_data->win); + elm_layout_file_set( + shadow, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", "shadow-ball"); + evas_object_move(shadow, x, FLOOR_Y); + evas_object_resize(shadow, 70, 3); + evas_object_show(shadow); + test_data->evas_objs = eina_list_append(test_data->evas_objs, shadow); + + front = _obj_face_add(test_data, "dice1", x, y); + back = _obj_face_add(test_data, "dice6", x, y); + top = _obj_face_add(test_data, "dice2", x, y); + bottom = _obj_face_add(test_data, "dice5", x, y); + right = _obj_face_add(test_data, "dice3", x, y); + left = _obj_face_add(test_data, "dice4", x, y); + + box = ephysics_body_box_add(test_data->world); + ephysics_body_face_evas_object_set(box, EPHYSICS_BODY_BOX_FACE_FRONT, + front, EINA_TRUE); + ephysics_body_face_evas_object_set(box, EPHYSICS_BODY_BOX_FACE_BACK, + back, EINA_TRUE); + ephysics_body_face_evas_object_set(box, EPHYSICS_BODY_BOX_FACE_TOP, + top, EINA_TRUE); + ephysics_body_face_evas_object_set(box, EPHYSICS_BODY_BOX_FACE_BOTTOM, + bottom, EINA_TRUE); + ephysics_body_face_evas_object_set(box, EPHYSICS_BODY_BOX_FACE_RIGHT, + right, EINA_TRUE); + ephysics_body_face_evas_object_set(box, EPHYSICS_BODY_BOX_FACE_LEFT, + left, EINA_TRUE); + ephysics_body_restitution_set(box, 0.7); + ephysics_body_sleeping_threshold_set(box, 0, 0); + ephysics_body_damping_set(box, 0, 0); + ephysics_body_linear_movement_enable_set(box, EINA_TRUE, EINA_TRUE, + EINA_TRUE); + ephysics_body_angular_movement_enable_set(box, EINA_TRUE, EINA_TRUE, + EINA_TRUE); + ephysics_body_event_callback_add(box, EPHYSICS_CALLBACK_BODY_UPDATE, + update_object_cb, shadow); + test_data->bodies = eina_list_append(test_data->bodies, box); + + return box; +} + +static void +_world_populate(Test_Data *test_data) +{ + EPhysics_Body *box; + + box = _box_add(test_data, WIDTH / 2, HEIGHT / 4); + ephysics_body_torque_impulse_apply(box, 6, -2, 0); + box = _box_add(test_data, 80, 80); + ephysics_body_torque_impulse_apply(box, 0, 0, 3); + ephysics_body_central_impulse_apply(box, 80, 0, 0); +} + +static void +_restart(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) +{ + test_clean(data); + _world_populate(data); +} + +void +test_dices(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +{ + EPhysics_Body *boundary; + EPhysics_World *world; + Test_Data *test_data; + + if (!ephysics_init()) + return; + + test_data = test_data_new(); + test_win_add(test_data, "Dices", EINA_TRUE); + + elm_layout_signal_callback_add(test_data->layout, "restart", "test-theme", + _restart, test_data); + elm_object_signal_emit(test_data->layout, "borders,show", "ephysics_test"); + + world = ephysics_world_new(); + ephysics_world_render_geometry_set(world, 50, 40, -50, + WIDTH - 100, FLOOR_Y - 40, DEPTH * 2); + ephysics_camera_perspective_enabled_set(ephysics_world_camera_get(world), + EINA_TRUE); + + ephysics_world_point_light_position_set(world, 0, 100, -400); + ephysics_world_ambient_light_color_set(world, 60, 60, 60); + ephysics_world_light_all_bodies_set(world, EINA_TRUE); + + test_data->world = world; + + boundary = ephysics_body_bottom_boundary_add(test_data->world); + ephysics_body_restitution_set(boundary, 0.7); + + ephysics_body_right_boundary_add(test_data->world); + ephysics_body_left_boundary_add(test_data->world); + ephysics_body_back_boundary_add(test_data->world); + ephysics_body_top_boundary_add(test_data->world); + + _world_populate(test_data); +}