ephysics: add some material constants

Pre-defined values of some properties, as density, friction and
restitution.

Ricardo researched these values on the following sources:

http://www.matbase.com/
http://www.matweb.com/
http://physics.info/density/
http://www.bulletphysics.org/Bullet/phpBB3/viewtopic.php?f=9&t=616
http://www.woodweb.com/knowledge_base/Wood_Handbook.html
http://www.engineershandbook.com/Tables/frictioncoefficients.htm
http://www.engineeringtoolbox.com/friction-coefficients-d_778.html
http://hypertextbook.com/facts/2006/restitution.shtml

Since they diverge a lot, he calculated an average value.



SVN revision: 77461
This commit is contained in:
Bruno Dilly 2012-10-04 22:39:35 +00:00
parent 748cfbe2f4
commit f0b85f701d
1 changed files with 153 additions and 0 deletions

View File

@ -1297,6 +1297,135 @@ EAPI void ephysics_world_simulation_get(const EPhysics_World *world, double *fix
*/
#define EPHYSICS_BODY_MASS_STATIC (0.0)
/**
* @def EPHYSICS_BODY_DENSITY_WOOD
* @brief Density of wood in kg / m ^ 3.
*
* It can be set to a body with @ref ephysics_body_density_set().
*/
#define EPHYSICS_BODY_DENSITY_WOOD (680.0)
/**
* @def EPHYSICS_BODY_DENSITY_IRON
* @brief Density of iron in kg / m ^ 3.
*
* It can be set to a body with @ref ephysics_body_density_set().
*/
#define EPHYSICS_BODY_DENSITY_IRON (7400.0)
/**
* @def EPHYSICS_BODY_DENSITY_CONCRETE
* @brief Density of concrete in kg / m ^ 3.
*
* It can be set to a body with @ref ephysics_body_density_set().
*/
#define EPHYSICS_BODY_DENSITY_CONCRETE (2300.0)
/**
* @def EPHYSICS_BODY_DENSITY_RUBBER
* @brief Density of rubber in kg / m ^ 3.
*
* It can be set to a body with @ref ephysics_body_density_set().
*/
#define EPHYSICS_BODY_DENSITY_RUBBER (920.0)
/**
* @def EPHYSICS_BODY_DENSITY_POLYSTYRENE
* @brief Density of polystyrene in kg / m ^ 3.
*
* It can be set to a body with @ref ephysics_body_density_set().
*/
#define EPHYSICS_BODY_DENSITY_POLYSTYRENE (80.0)
/**
* @def EPHYSICS_BODY_DENSITY_PLASTIC
* @brief Density of plastic in kg / m ^ 3.
*
* It can be set to a body with @ref ephysics_body_density_set().
*/
#define EPHYSICS_BODY_DENSITY_PLASTIC (1300.0)
/**
* @def EPHYSICS_BODY_FRICTION_WOOD
* @brief Friction coefficient of wood.
*
* It can be set to a body with @ref ephysics_body_friction_set().
*/
#define EPHYSICS_BODY_FRICTION_WOOD (0.4)
/**
* @def EPHYSICS_BODY_FRICTION_IRON
* @brief Friction coefficient of iron.
*
* It can be set to a body with @ref ephysics_body_friction_set().
*/
#define EPHYSICS_BODY_FRICTION_IRON (0.8)
/**
* @def EPHYSICS_BODY_FRICTION_CONCRETE
* @brief Friction coefficient of concrete.
*
* It can be set to a body with @ref ephysics_body_friction_set().
*/
#define EPHYSICS_BODY_FRICTION_CONCRETE (0.65)
/**
* @def EPHYSICS_BODY_FRICTION_RUBBER
* @brief Friction coefficient of rubber.
*
* It can be set to a body with @ref ephysics_body_friction_set().
*/
#define EPHYSICS_BODY_FRICTION_RUBBER (0.75)
/**
* @def EPHYSICS_BODY_FRICTION_POLYSTYRENE
* @brief Friction coefficient of polystyrene.
*
* It can be set to a body with @ref ephysics_body_friction_set().
*/
#define EPHYSICS_BODY_FRICTION_POLYSTYRENE (0.5)
/**
* @def EPHYSICS_BODY_FRICTION_PLASTIC
* @brief Friction coefficient of plastic.
*
* It can be set to a body with @ref ephysics_body_friction_set().
*/
#define EPHYSICS_BODY_FRICTION_PLASTIC (0.35)
/**
* @def EPHYSICS_BODY_RESTITUTION_WOOD
* @brief Restitution coefficient of wood.
*
* It can be set to a body with @ref ephysics_body_restitution_set().
*/
#define EPHYSICS_BODY_RESTITUTION_WOOD (0.7)
/**
* @def EPHYSICS_BODY_RESTITUTION_IRON
* @brief Restitution coefficient of iron.
*
* It can be set to a body with @ref ephysics_body_restitution_set().
*/
#define EPHYSICS_BODY_RESTITUTION_IRON (0.85)
/**
* @def EPHYSICS_BODY_RESTITUTION_CONCRETE
* @brief Restitution coefficient of concrete.
*
* It can be set to a body with @ref ephysics_body_restitution_set().
*/
#define EPHYSICS_BODY_RESTITUTION_CONCRETE (0.75)
/**
* @def EPHYSICS_BODY_RESTITUTION_RUBBER
* @brief Restitution coefficient of rubber.
*
* It can be set to a body with @ref ephysics_body_restitution_set().
*/
#define EPHYSICS_BODY_RESTITUTION_RUBBER (0.3)
/**
* @def EPHYSICS_BODY_RESTITUTION_POLYSTYRENE
* @brief Restitution coefficient of polystyrene.
*
* It can be set to a body with @ref ephysics_body_restitution_set().
*/
#define EPHYSICS_BODY_RESTITUTION_POLYSTYRENE (0.5)
/**
* @def EPHYSICS_BODY_RESTITUTION_PLASTIC
* @brief Restitution coefficient of plastic.
*
* It can be set to a body with @ref ephysics_body_restitution_set().
*/
#define EPHYSICS_BODY_RESTITUTION_PLASTIC (0.6)
/**
* @typedef EPhysics_Body_Collision
*
@ -2244,6 +2373,14 @@ EAPI EPhysics_Body *ephysics_body_collision_contact_body_get(const EPhysics_Body
*
* By default restitution coefficient of each body is 0.
*
* EPhysics has some pre-defined restitution coefficients for materials:
* @li @ref EPHYSICS_BODY_RESTITUTION_CONCRETE
* @li @ref EPHYSICS_BODY_RESTITUTION_IRON
* @li @ref EPHYSICS_BODY_RESTITUTION_PLASTIC
* @li @ref EPHYSICS_BODY_RESTITUTION_POLYSTYRENE
* @li @ref EPHYSICS_BODY_RESTITUTION_RUBBER
* @li @ref EPHYSICS_BODY_RESTITUTION_WOOD
*
* @param body The body to has its restitution coefficient set.
* @param restitution The new @p body's restitution coefficient.
*
@ -2279,6 +2416,14 @@ EAPI double ephysics_body_restitution_get(const EPhysics_Body *body);
* By default friction value is 0.5 and simulation results will be better
* when friction in non-zero.
*
* EPhysics has some pre-defined friction coefficients for materials:
* @li @ref EPHYSICS_BODY_FRICTION_CONCRETE
* @li @ref EPHYSICS_BODY_FRICTION_IRON
* @li @ref EPHYSICS_BODY_FRICTION_PLASTIC
* @li @ref EPHYSICS_BODY_FRICTION_POLYSTYRENE
* @li @ref EPHYSICS_BODY_FRICTION_RUBBER
* @li @ref EPHYSICS_BODY_FRICTION_WOOD
*
* @param body The body to has its friction set.
* @param friction The new @p body's friction value.
*
@ -2714,6 +2859,14 @@ EAPI void ephysics_body_center_mass_get(const EPhysics_Body *body, double *x, do
*
* By default, no density is set.
*
* EPhysics has some pre-defined density values for materials:
* @li @ref EPHYSICS_BODY_DENSITY_CONCRETE
* @li @ref EPHYSICS_BODY_DENSITY_IRON
* @li @ref EPHYSICS_BODY_DENSITY_PLASTIC
* @li @ref EPHYSICS_BODY_DENSITY_POLYSTYRENE
* @li @ref EPHYSICS_BODY_DENSITY_RUBBER
* @li @ref EPHYSICS_BODY_DENSITY_WOOD
*
* @note The unit used for density is kilograms / meters ^ 3.
*
* @param body The body to has its material density set.