forked from enlightenment/efl
ephysics: add a new example doc: Shapes -
test_shapes.c Patch by: Ricardo de Almeida Gonzaga <ricardo@profusion.mobi> SVN revision: 76972
This commit is contained in:
parent
cdb1dec5b6
commit
0055318b51
|
@ -11,6 +11,7 @@
|
||||||
* @li @ref tutorial_ephysics_constraint
|
* @li @ref tutorial_ephysics_constraint
|
||||||
* @li @ref tutorial_ephysics_gravity
|
* @li @ref tutorial_ephysics_gravity
|
||||||
* @li @ref tutorial_ephysics_velocity
|
* @li @ref tutorial_ephysics_velocity
|
||||||
|
* @li @ref tutorial_ephysics_shapes
|
||||||
* @li @ref tutorial_ephysics_sleeping_threshold
|
* @li @ref tutorial_ephysics_sleeping_threshold
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -800,6 +801,103 @@
|
||||||
* @example test_velocity.c
|
* @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
|
* @page tutorial_ephysics_sleeping_threshold EPhysics - Sleeping Threshold
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue