- Date
- 2012 (created)
Table of Contents
Introduction
EPhysics is a library that makes it easy to use Ecore, Evas and Bullet Physics together. It's a kind of wrapper, a glue, between these libraries. It's not intended to be a physics library (we already have many out there).
How to compile
Ephysics is a library your application links to. The procedure for this is very simple. You simply have to compile your application with the appropriate compiler flags that the pkg-config
script outputs. For example:
Compiling C or C++ files into object files:
gcc -c -o main.o main.c `pkg-config --cflags ephysics`
Linking object files into a binary executable:
gcc -o my_application main.o `pkg-config --libs ephysics`
See pkgconfig
Next Steps
After you understood what EPhysics is and installed it in your system you should proceed understanding the programming interface.
Recommended reading:
Introductory Example
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "ephysics_test.h"
{
if (strcmp(ev->
key,
"Up") == 0)
else if (strcmp(ev->
key,
"Down") == 0)
else if (strcmp(ev->
key,
"Right") == 0)
else if (strcmp(ev->
key,
"Left") == 0)
}
static void
_world_populate(Test_Data *test_data)
{
shadow = elm_layout_add(test_data->win);
elm_layout_file_set(
shadow, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", "shadow-ball");
sphere = elm_image_add(test_data->win);
elm_image_file_set(
sphere, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", "big-blue-ball");
update_object_cb, shadow);
test_data->data = fall_body;
}
static void
_restart(
void *data,
Evas_Object *obj __UNUSED__,
const char *emission __UNUSED__,
const char *source __UNUSED__)
{
Test_Data *test_data = data;
DBG("Restart pressed");
elm_object_event_callback_del(test_data->win, _on_keydown, test_data->data);
test_clean(test_data);
_world_populate(test_data);
elm_object_event_callback_add(test_data->win, _on_keydown, test_data->data);
}
void
test_bouncing_ball(
void *data __UNUSED__,
Evas_Object *obj __UNUSED__,
void *event_info __UNUSED__)
{
Test_Data *test_data;
return;
test_data = test_data_new();
test_win_add(test_data,
"Bouncing Ball",
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");
elm_object_signal_emit(test_data->layout, "arrows,show", "ephysics_test");
WIDTH - 100, FLOOR_Y - 40, DEPTH);
test_data->world = world;
_world_populate(test_data);
elm_object_event_callback_add(test_data->win, _on_keydown, test_data->data);
}
More examples can be found at EPhysics Examples.