From 3013d17b2933ddf349ce273832af572d0d07a482 Mon Sep 17 00:00:00 2001 From: Bruno Dilly Date: Tue, 11 Dec 2012 21:30:38 +0000 Subject: [PATCH] edje: update physics to handle ephysics API breakage SVN revision: 80725 --- legacy/edje/data/edc.vim | 10 +-- legacy/edje/src/bin/edje_cc_handlers.c | 76 +++++++------------ legacy/edje/src/examples/physics_actions.edc | 4 +- legacy/edje/src/examples/physics_basic.edc | 2 +- legacy/edje/src/examples/physics_complex.edc | 2 +- .../edje/src/examples/physics_soft_bodies.edc | 10 +-- legacy/edje/src/lib/edje_calc.c | 17 +++-- legacy/edje/src/lib/edje_private.h | 6 +- 8 files changed, 56 insertions(+), 71 deletions(-) diff --git a/legacy/edje/data/edc.vim b/legacy/edje/data/edc.vim index 121fed78f9..6041dcf1fb 100644 --- a/legacy/edje/data/edc.vim +++ b/legacy/edje/data/edc.vim @@ -67,7 +67,8 @@ syn keyword cConstant VERTICAL HORIZONTAL ON_HOLD BOTH EDITABLE EXPLICIT syn keyword cConstant FOCUS_SET "default" NEITHER syn keyword cConstant DYNAMIC STATIC PASSWORD -syn keyword cConstant RIGID_BOX RIGID_CIRCLE SOFT_BOX SOFT_CIRCLE +syn keyword cConstant RIGID_BOX RIGID_SPHERE SOFT_BOX SOFT_SPHERE +syn keyword cConstant RIGID_CYLINDER SOFT_CYLINDER syn keyword cConstant CLOTH BOUNDARY_TOP BOUNDARY_BOTTOM BOUNDARY_LEFT syn keyword cConstant BOUNDARY_RIGHT BOUNDARY_FRONT BOUNDARY_BACK syn keyword cConstant PHYSICS_IMPULSE PHYSICS_TORQUE_IMPULSE @@ -78,12 +79,7 @@ syn keyword cConstant BOX_MIDDLE_BACK BOX_FRONT BOX_BACK BOX_LEFT syn keyword cConstant BOX_RIGHT BOX_TOP BOX_BOTTOM syn keyword cConstant CYLINDER_MIDDLE_FRONT CYLINDER_MIDDLE_BACK syn keyword cConstant CYLINDER_FRONT CYLINDER_BACK CYLINDER_CURVED -syn keyword cConstant CLOTH_FRONT CLOTH_BACK SOFT_BOX_MIDDLE_FRONT -syn keyword cConstant SOFT_BOX_MIDDLE_BACK SOFT_BOX_FRONT -syn keyword cConstant SOFT_BOX_BACK SOFT_BOX_LEFT SOFT_BOX_RIGHT -syn keyword cConstant SOFT_BOX_TOP SOFT_BOX_BOTTOM SOFT_CIRCLE_BACK -syn keyword cConstant SOFT_CIRCLE_MIDDLE_FRONT SOFT_CIRCLE_FRONT -syn keyword cConstant SOFT_CIRCLE_MIDDLE_BACK SOFT_CIRCLE_CURVED +syn keyword cConstant CLOTH_FRONT CLOTH_BACK SPHERE_FRONT SPHERE_BACK syn keyword cTodo contained TODO FIXME XXX diff --git a/legacy/edje/src/bin/edje_cc_handlers.c b/legacy/edje/src/bin/edje_cc_handlers.c index da54fd750d..80a5063f1e 100644 --- a/legacy/edje/src/bin/edje_cc_handlers.c +++ b/legacy/edje/src/bin/edje_cc_handlers.c @@ -3445,9 +3445,11 @@ st_collections_group_parts_part_type(void) Valid types: @li NONE @li RIGID_BOX - @li RIGID_CIRCLE + @li RIGID_SPHERE + @li RIGID_CYLINDER @li SOFT_BOX - @li SOFT_CIRCLE + @li SOFT_SPHERE + @li SOFT_CYLINDER @li CLOTH @li BOUNDARY_TOP @li BOUNDARY_BOTTOM @@ -3469,9 +3471,11 @@ st_collections_group_parts_part_physics_body(void) body = parse_enum(0, "NONE", EDJE_PART_PHYSICS_BODY_NONE, "RIGID_BOX", EDJE_PART_PHYSICS_BODY_RIGID_BOX, - "RIGID_CIRCLE", EDJE_PART_PHYSICS_BODY_RIGID_CIRCLE, + "RIGID_SPHERE", EDJE_PART_PHYSICS_BODY_RIGID_SPHERE, + "RIGID_CYLINDER", EDJE_PART_PHYSICS_BODY_RIGID_CYLINDER, "SOFT_BOX", EDJE_PART_PHYSICS_BODY_SOFT_BOX, - "SOFT_CIRCLE", EDJE_PART_PHYSICS_BODY_SOFT_CIRCLE, + "SOFT_SPHERE", EDJE_PART_PHYSICS_BODY_SOFT_SPHERE, + "SOFT_CYLINDER", EDJE_PART_PHYSICS_BODY_SOFT_CYLINDER, "CLOTH", EDJE_PART_PHYSICS_BODY_CLOTH, "BOUNDARY_TOP", EDJE_PART_PHYSICS_BODY_BOUNDARY_TOP, "BOUNDARY_BOTTOM", EDJE_PART_PHYSICS_BODY_BOUNDARY_BOTTOM, @@ -7762,34 +7766,23 @@ st_collections_group_parts_part_description_physics_face(void) @effect Set the face (all caps) from among the available body's shape faces. Valid faces: - * BOX_MIDDLE_FRONT, - * BOX_MIDDLE_BACK, - * BOX_FRONT, - * BOX_BACK, - * BOX_LEFT, - * BOX_RIGHT, - * BOX_TOP, - * BOX_BOTTOM, - * CYLINDER_MIDDLE_FRONT, - * CYLINDER_MIDDLE_BACK, - * CYLINDER_FRONT, - * CYLINDER_BACK, - * CYLINDER_CURVED, - * CLOTH_FRONT, + * BOX_MIDDLE_FRONT + * BOX_MIDDLE_BACK + * BOX_FRONT + * BOX_BACK + * BOX_LEFT + * BOX_RIGHT + * BOX_TOP + * BOX_BOTTOM + * CLOTH_FRONT * CLOTH_BACK - * SOFT_BOX_MIDDLE_FRONT, - * SOFT_BOX_MIDDLE_BACK, - * SOFT_BOX_FRONT, - * SOFT_BOX_BACK, - * SOFT_BOX_LEFT, - * SOFT_BOX_RIGHT, - * SOFT_BOX_TOP, - * SOFT_BOX_BOTTOM, - * SOFT_CIRCLE_MIDDLE_FRONT, - * SOFT_CIRCLE_MIDDLE_BACK, - * SOFT_CIRCLE_FRONT, - * SOFT_CIRCLE_BACK, - * SOFT_CIRCLE_CURVED, + * CYLINDER_MIDDLE_FRONT + * CYLINDER_MIDDLE_BACK + * CYLINDER_FRONT + * CYLINDER_BACK + * CYLINDER_CURVED + * SPHERE_FRONT + * SPHERE_BACK @endproperty */ #ifdef HAVE_EPHYSICS @@ -7809,28 +7802,15 @@ st_collections_group_parts_part_description_physics_face_type(void) "BOX_RIGHT", EPHYSICS_BODY_BOX_FACE_RIGHT, "BOX_TOP", EPHYSICS_BODY_BOX_FACE_TOP, "BOX_BOTTOM", EPHYSICS_BODY_BOX_FACE_BOTTOM, + "CLOTH_FRONT", EPHYSICS_BODY_CLOTH_FACE_FRONT, + "CLOTH_BACK", EPHYSICS_BODY_CLOTH_FACE_BACK, "CYLINDER_MIDDLE_FRONT", EPHYSICS_BODY_CYLINDER_FACE_MIDDLE_FRONT, "CYLINDER_MIDDLE_BACK", EPHYSICS_BODY_CYLINDER_FACE_MIDDLE_BACK, "CYLINDER_FRONT", EPHYSICS_BODY_CYLINDER_FACE_FRONT, "CYLINDER_BACK", EPHYSICS_BODY_CYLINDER_FACE_BACK, "CYLINDER_CURVED", EPHYSICS_BODY_CYLINDER_FACE_CURVED, - "CLOTH_FRONT", EPHYSICS_BODY_CLOTH_FACE_FRONT, - "CLOTH_BACK", EPHYSICS_BODY_CLOTH_FACE_BACK, - "SOFT_ELLIPSOID_FRONT", EPHYSICS_BODY_SOFT_ELLIPSOID_FACE_FRONT, - "SOFT_ELLIPSOID_BACK", EPHYSICS_BODY_SOFT_ELLIPSOID_FACE_BACK, - "SOFT_BOX_MIDDLE_FRONT", EPHYSICS_BODY_SOFT_BOX_FACE_MIDDLE_FRONT, - "SOFT_BOX_MIDDLE_BACK", EPHYSICS_BODY_SOFT_BOX_FACE_MIDDLE_BACK, - "SOFT_BOX_FRONT", EPHYSICS_BODY_SOFT_BOX_FACE_FRONT, - "SOFT_BOX_BACK", EPHYSICS_BODY_SOFT_BOX_FACE_BACK, - "SOFT_BOX_LEFT", EPHYSICS_BODY_SOFT_BOX_FACE_LEFT, - "SOFT_BOX_RIGHT", EPHYSICS_BODY_SOFT_BOX_FACE_RIGHT, - "SOFT_BOX_TOP", EPHYSICS_BODY_SOFT_BOX_FACE_TOP, - "SOFT_BOX_BOTTOM", EPHYSICS_BODY_SOFT_BOX_FACE_BOTTOM, - "SOFT_CIRCLE_MIDDLE_FRONT", EPHYSICS_BODY_SOFT_CIRCLE_FACE_MIDDLE_FRONT, - "SOFT_CIRCLE_MIDDLE_BACK", EPHYSICS_BODY_SOFT_CIRCLE_FACE_MIDDLE_BACK, - "SOFT_CIRCLE_FRONT", EPHYSICS_BODY_SOFT_CIRCLE_FACE_FRONT, - "SOFT_CIRCLE_BACK", EPHYSICS_BODY_SOFT_CIRCLE_FACE_BACK, - "SOFT_CIRCLE_CURVES", EPHYSICS_BODY_SOFT_CIRCLE_FACE_CURVED, + "SPHERE_FRONT", EPHYSICS_BODY_SPHERE_FACE_FRONT, + "SPHERE_BACK", EPHYSICS_BODY_SPHERE_FACE_BACK, NULL); EINA_LIST_FOREACH(current_desc->physics.faces, l, pface2) diff --git a/legacy/edje/src/examples/physics_actions.edc b/legacy/edje/src/examples/physics_actions.edc index 5863478036..abcf5f5655 100644 --- a/legacy/edje/src/examples/physics_actions.edc +++ b/legacy/edje/src/examples/physics_actions.edc @@ -239,7 +239,7 @@ collections { part { name: "blue_circle"; type: IMAGE; - physics_body: RIGID_CIRCLE; + physics_body: RIGID_SPHERE; description { state: "default" 0.0; rel1.relative: 0.35 0.1; @@ -258,7 +258,7 @@ collections { part { name: "red_circle"; type: IMAGE; - physics_body: RIGID_CIRCLE; + physics_body: RIGID_SPHERE; description { state: "default" 0.0; color: 255 0 0 255; /* light red */ diff --git a/legacy/edje/src/examples/physics_basic.edc b/legacy/edje/src/examples/physics_basic.edc index 86b065e967..0003b4c632 100644 --- a/legacy/edje/src/examples/physics_basic.edc +++ b/legacy/edje/src/examples/physics_basic.edc @@ -55,7 +55,7 @@ collections { part { name: "blue_circle"; type: IMAGE; - physics_body: RIGID_CIRCLE; + physics_body: RIGID_SPHERE; description { state: "default" 0.0; rel1.relative: 0.25 0.1; diff --git a/legacy/edje/src/examples/physics_complex.edc b/legacy/edje/src/examples/physics_complex.edc index 2116e99916..c09edea273 100644 --- a/legacy/edje/src/examples/physics_complex.edc +++ b/legacy/edje/src/examples/physics_complex.edc @@ -70,7 +70,7 @@ collections { part { name: "blue_circle"; type: IMAGE; - physics_body: RIGID_CIRCLE; + physics_body: RIGID_SPHERE; description { state: "default" 0.0; rel1.relative: 0.75 0.1; diff --git a/legacy/edje/src/examples/physics_soft_bodies.edc b/legacy/edje/src/examples/physics_soft_bodies.edc index 41819e302a..fa9e05301e 100644 --- a/legacy/edje/src/examples/physics_soft_bodies.edc +++ b/legacy/edje/src/examples/physics_soft_bodies.edc @@ -56,14 +56,14 @@ collections { state: "soft" 0.0; inherit: "default" 0.0; physics { - hardness: 0.5; + hardness: 0.8; } } description { state: "very_soft" 0.0; inherit: "default" 0.0; physics { - hardness: 0.2; + hardness: 0.4; } } } @@ -71,7 +71,7 @@ collections { part { name: "blue_circle"; type: IMAGE; - physics_body: SOFT_CIRCLE; + physics_body: SOFT_CYLINDER; description { state: "default" 0.0; rel1.relative: 0.25 0.1; @@ -89,12 +89,12 @@ collections { description { state: "soft" 0.0; inherit: "default" 0.0; - physics.hardness: 0.5; + physics.hardness: 0.8; } description { state: "very_soft" 0.0; inherit: "default" 0.0; - physics.hardness: 0.2; + physics.hardness: 0.4; } } diff --git a/legacy/edje/src/lib/edje_calc.c b/legacy/edje/src/lib/edje_calc.c index 86c8a74d19..97833da81e 100644 --- a/legacy/edje/src/lib/edje_calc.c +++ b/legacy/edje/src/lib/edje_calc.c @@ -2512,7 +2512,8 @@ _edje_physics_body_props_update(Edje_Real_Part *ep, Edje_Calc_Params *pf, Eina_B } if ((ep->part->physics_body == EDJE_PART_PHYSICS_BODY_SOFT_BOX) || - (ep->part->physics_body == EDJE_PART_PHYSICS_BODY_SOFT_CIRCLE) || + (ep->part->physics_body == EDJE_PART_PHYSICS_BODY_SOFT_SPHERE) || + (ep->part->physics_body == EDJE_PART_PHYSICS_BODY_SOFT_CYLINDER) || (ep->part->physics_body == EDJE_PART_PHYSICS_BODY_CLOTH)) ephysics_body_soft_body_hardness_set(ep->body, pf->physics.hardness * 100); @@ -2554,14 +2555,20 @@ _edje_physics_body_add(Edje_Real_Part *rp, EPhysics_World *world) case EDJE_PART_PHYSICS_BODY_RIGID_BOX: rp->body = ephysics_body_box_add(world); break; - case EDJE_PART_PHYSICS_BODY_RIGID_CIRCLE: - rp->body = ephysics_body_circle_add(world); + case EDJE_PART_PHYSICS_BODY_RIGID_SPHERE: + rp->body = ephysics_body_sphere_add(world); + break; + case EDJE_PART_PHYSICS_BODY_RIGID_CYLINDER: + rp->body = ephysics_body_cylinder_add(world); break; case EDJE_PART_PHYSICS_BODY_SOFT_BOX: rp->body = ephysics_body_soft_box_add(world); break; - case EDJE_PART_PHYSICS_BODY_SOFT_CIRCLE: - rp->body = ephysics_body_soft_circle_add(world); + case EDJE_PART_PHYSICS_BODY_SOFT_SPHERE: + rp->body = ephysics_body_soft_sphere_add(world, 0); + break; + case EDJE_PART_PHYSICS_BODY_SOFT_CYLINDER: + rp->body = ephysics_body_soft_cylinder_add(world); break; case EDJE_PART_PHYSICS_BODY_CLOTH: rp->body = ephysics_body_cloth_add(world, 0, 0); diff --git a/legacy/edje/src/lib/edje_private.h b/legacy/edje/src/lib/edje_private.h index e20fe0dfc6..27082f14ad 100644 --- a/legacy/edje/src/lib/edje_private.h +++ b/legacy/edje/src/lib/edje_private.h @@ -771,9 +771,11 @@ typedef enum { typedef enum { EDJE_PART_PHYSICS_BODY_NONE= 0, EDJE_PART_PHYSICS_BODY_RIGID_BOX, - EDJE_PART_PHYSICS_BODY_RIGID_CIRCLE, + EDJE_PART_PHYSICS_BODY_RIGID_SPHERE, + EDJE_PART_PHYSICS_BODY_RIGID_CYLINDER, EDJE_PART_PHYSICS_BODY_SOFT_BOX, - EDJE_PART_PHYSICS_BODY_SOFT_CIRCLE, + EDJE_PART_PHYSICS_BODY_SOFT_SPHERE, + EDJE_PART_PHYSICS_BODY_SOFT_CYLINDER, EDJE_PART_PHYSICS_BODY_CLOTH, EDJE_PART_PHYSICS_BODY_BOUNDARY_TOP, EDJE_PART_PHYSICS_BODY_BOUNDARY_BOTTOM,