diff --git a/legacy/ephysics/doc/examples.dox b/legacy/ephysics/doc/examples.dox index 8161fa9e2b..3c726f8fd3 100644 --- a/legacy/ephysics/doc/examples.dox +++ b/legacy/ephysics/doc/examples.dox @@ -11,6 +11,7 @@ * @li @ref tutorial_ephysics_constraint * @li @ref tutorial_ephysics_gravity * @li @ref tutorial_ephysics_velocity + * @li @ref tutorial_ephysics_shapes * @li @ref tutorial_ephysics_sleeping_threshold */ @@ -800,6 +801,103 @@ * @example test_velocity.c */ + /** + * @page tutorial_ephysics_shapes EPhysics - Shapes + * + * The purpose of this example is to demonstrate the EPhysics Shapes + * usage - The code creates two EPhysics_Bodys using a custom shape. + * + * For this example we'll have an EPhysics_World, and two basic EPhysics_Bodys. + * + * The basic concepts like - defining an EPhysics_World, render geometry, + * physics limiting boundaries, add an EPhysics_Body, associate it to evas + * objects, change restitution, friction and impulse properties, were + * already covered in + * @ref tutorial_ephysics_bouncing_ball + * + * @section add-shape Adding a Shape + * @dontinclude test_shapes.c + * + * Shapes are used to create bodies with shapes that differ from primitive + * ones, like box and circle. + * + * A shape consists in a group of points, the vertices of the body to be + * created later with ephysics_body_shape_add(). You can also save and load + * it from a file. + * + * We'll have to create a specific type of variable: + * @ref EPhysics_Shape + * + * @skip _world_populate(Test_Data + * @until Evas_Object *pentagon, + * + * First we add an image we want to add an EPhysics_Body to have a reference + * to after set the points (vertices). + * + * @skip pentagon = elm_image_add + * @until evas_object_show(pentagon); + * + * Here we create a new shape, note that the returned shape initially + * doesn't has points set, so its requiered to set vertices. + * + * @skipline pentagon_shape = + * + * Now we're setting the shape points (vertices) basing on the image that + * we added, two vertices form a link between them, an edge, so with some + * vertices is possible to create polygons, in this case a pentagon. + * + * @skip ephysics_shape_point_add(pentagon_shape + * @until , 1); + * + * Here we create a new physics body using a custom shape. The center of mass + * will be the center of the shape. Its collision shape will be the convex + * shape that has all the points (and edges) we added to this shape before. + * + * @skip pentagon_body = ephysics_body_shape_add + * @until ephysics_body_restitution_set(pentagon_body, 1); + * + * Here we just delete the custom shape (not the body) after used to create + * the wanted bodies, it's required to delete it. It won't be deleted + * automatically by ephysics at any point, even on shutdown. + * + * @skipline ephysics_shape_del(pentagon_shape + * + * In the example we add another shape with the same process we just used, + * but with different image and points. + * + * @dontinclude test_shapes.c + * + * @skip ephysics_shape_point_add(hexagon_shape + * @until 18, 60); + * + * Here we finish the example. The full source code can be found at + * @ref test_shapes_c. + * + */ + + /** + * @page test_shapes_c test_shapes.c + * + * @section ephysics-test-h ephysics_test.h + * @include ephysics_test.h + * + * @section test-shapes-c test_shapes.c + * @dontinclude test.c + * + * @skip test_clean + * @until } + * + * @skip test_data_new + * @until } + * + * @skip test_win_add + * @until } + * + * @include test_shapes.c + * + * @example test_shapes.c + */ + /** * @page tutorial_ephysics_sleeping_threshold EPhysics - Sleeping Threshold *