Changeset View
Changeset View
Standalone View
Standalone View
src/examples/ephysics/test_collision_detection.c
1 | #ifdef HAVE_CONFIG_H | 1 | #ifdef HAVE_CONFIG_H | ||
---|---|---|---|---|---|
2 | # include <config.h> | 2 | # include <config.h> | ||
3 | #endif | 3 | #endif | ||
4 | 4 | | |||
5 | #include "ephysics_test.h" | 5 | #include "ephysics_test.h" | ||
6 | 6 | | |||
7 | typedef struct _Collision_Data Collision_Data; | 7 | typedef struct _Collision_Data Collision_Data; | ||
8 | 8 | | |||
9 | struct _Collision_Data { | 9 | struct _Collision_Data { | ||
10 | Test_Data base; | 10 | Test_Data base; | ||
11 | Evas_Object *impact; | 11 | Evas_Object *impact; | ||
12 | EPhysics_Body *sphere; | 12 | EPhysics_Body *sphere; | ||
13 | EPhysics_Body *sphere2; | 13 | EPhysics_Body *sphere2; | ||
14 | }; | 14 | }; | ||
15 | 15 | | |||
16 | static void | 16 | static void | ||
17 | _collision_cb(void *data, EPhysics_Body *body __UNUSED__, void *event_info) | 17 | _collision_cb(void *data, EPhysics_Body *body EINA_UNUSED, void *event_info) | ||
18 | { | 18 | { | ||
19 | EPhysics_Body *contact_body; | 19 | EPhysics_Body *contact_body; | ||
20 | Collision_Data *collision_data = data; | 20 | Collision_Data *collision_data = data; | ||
21 | EPhysics_Body_Collision *collision = event_info; | 21 | EPhysics_Body_Collision *collision = event_info; | ||
22 | int x, y, z; | 22 | int x, y, z; | ||
23 | 23 | | |||
24 | contact_body = ephysics_body_collision_contact_body_get(collision); | 24 | contact_body = ephysics_body_collision_contact_body_get(collision); | ||
25 | if (contact_body != collision_data->sphere2) return; | 25 | if (contact_body != collision_data->sphere2) return; | ||
▲ Show 20 Lines • Show All 80 Lines • ▼ Show 20 Line(s) | 38 | { | |||
106 | evas_object_resize(impact, 20, 20); | 106 | evas_object_resize(impact, 20, 20); | ||
107 | evas_object_show(impact); | 107 | evas_object_show(impact); | ||
108 | collision_data->base.evas_objs = eina_list_append( | 108 | collision_data->base.evas_objs = eina_list_append( | ||
109 | collision_data->base.evas_objs, impact); | 109 | collision_data->base.evas_objs, impact); | ||
110 | collision_data->impact = impact; | 110 | collision_data->impact = impact; | ||
111 | } | 111 | } | ||
112 | 112 | | |||
113 | static void | 113 | static void | ||
114 | _restart(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) | 114 | _restart(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) | ||
115 | { | 115 | { | ||
116 | Collision_Data *collision_data = data; | 116 | Collision_Data *collision_data = data; | ||
117 | 117 | | |||
118 | DBG("Restart pressed"); | 118 | DBG("Restart pressed"); | ||
119 | ephysics_body_event_callback_del(collision_data->sphere, | 119 | ephysics_body_event_callback_del(collision_data->sphere, | ||
120 | EPHYSICS_CALLBACK_BODY_COLLISION, | 120 | EPHYSICS_CALLBACK_BODY_COLLISION, | ||
121 | _collision_cb); | 121 | _collision_cb); | ||
122 | test_clean((Test_Data *)collision_data); | 122 | test_clean((Test_Data *)collision_data); | ||
123 | _world_populate(collision_data); | 123 | _world_populate(collision_data); | ||
124 | ephysics_body_event_callback_add(collision_data->sphere, | 124 | ephysics_body_event_callback_add(collision_data->sphere, | ||
125 | EPHYSICS_CALLBACK_BODY_COLLISION, | 125 | EPHYSICS_CALLBACK_BODY_COLLISION, | ||
126 | _collision_cb, collision_data); | 126 | _collision_cb, collision_data); | ||
127 | } | 127 | } | ||
128 | 128 | | |||
129 | static void | 129 | static void | ||
130 | _win_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) | 130 | _win_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) | ||
131 | { | 131 | { | ||
132 | Collision_Data *collision_data = data; | 132 | Collision_Data *collision_data = data; | ||
133 | 133 | | |||
134 | test_clean((Test_Data *)collision_data); | 134 | test_clean((Test_Data *)collision_data); | ||
135 | evas_object_del(collision_data->base.layout); | 135 | evas_object_del(collision_data->base.layout); | ||
136 | ephysics_world_del(collision_data->base.world); | 136 | ephysics_world_del(collision_data->base.world); | ||
137 | free(collision_data); | 137 | free(collision_data); | ||
138 | ephysics_shutdown(); | 138 | ephysics_shutdown(); | ||
139 | } | 139 | } | ||
140 | 140 | | |||
141 | void | 141 | void | ||
142 | test_collision(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) | 142 | test_collision(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) | ||
143 | { | 143 | { | ||
144 | Collision_Data *collision_data; | 144 | Collision_Data *collision_data; | ||
145 | EPhysics_Body *boundary; | 145 | EPhysics_Body *boundary; | ||
146 | EPhysics_World *world; | 146 | EPhysics_World *world; | ||
147 | 147 | | |||
148 | if (!ephysics_init()) | 148 | if (!ephysics_init()) | ||
149 | return; | 149 | return; | ||
150 | 150 | | |||
Show All 37 Lines |