Commit Graph

129 Commits

Author SHA1 Message Date
Bruno Dilly 14459c4d74 ephysics: add heavy test to check threads work
Simulate 600 small balls.

Ok, it's not so huge, but I've tested to add a sleep on step simulation
on bullet. Things looks to be working just fine.



SVN revision: 77470
2012-10-04 22:40:46 +00:00
Bruno Dilly d6d51d86f8 ephysics: fix typos on docs
SVN revision: 77469
2012-10-04 22:40:35 +00:00
Leandro Dorileo 8079624030 EPhysics: soft body test
Soft Body Test, add smart soft bodies in the list for exclusion.


Patch by: Leandro Dorileo <dorileo@profusion.mobi>



SVN revision: 77468
2012-10-04 22:40:29 +00:00
Leandro Dorileo 252643a33b EPhysics: add cloth support
This patch introduces the cloth support. Auxiliary API's for setting
full anchors, cloth nodes anchors and so on is also introduced. Few
other issues concerning soft body and cloth transform, has been worked
to fit the cloth support needs.


Patch by: Leandro Dorileo <dorileo@profusion.mobi>



SVN revision: 77467
2012-10-04 22:40:16 +00:00
Leandro Dorileo 1cb8f6fc0c EPhysics: multi point deformation
This patch introduces support for multi point deformation mapping,
it's wrapped with an evas smart object to handle multiple slices.


Patch by: Leandro Dorileo <dorileo@profusion.mobi>



SVN revision: 77466
2012-10-04 22:40:07 +00:00
Bruno Dilly da4c5234f2 ephysics: use new ELM_POLICY_EXIT
To make sure windows will be properly deleted at shutdown.



SVN revision: 77465
2012-10-04 22:39:59 +00:00
Bruno Dilly 7d994cc8e6 ephysics: don't try to lock on internal delete
SVN revision: 77464
2012-10-04 22:39:53 +00:00
Bruno Dilly 7fe038a1c8 ephysics: add test for materials
SVN revision: 77463
2012-10-04 22:39:47 +00:00
Bruno Dilly 0bdec67255 ephysics: support body material
Using material_set it will be easier to set density, friction
and restitution to a body, simulating properties of the selected
material.



SVN revision: 77462
2012-10-04 22:39:42 +00:00
Bruno Dilly f0b85f701d 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
2012-10-04 22:39:35 +00:00
Bruno Dilly 748cfbe2f4 ephysics: support density
SVN revision: 77460
2012-10-04 22:39:29 +00:00
Bruno Dilly b52d2ed85e ephysics: add define to infinite mass
Also check for invalid values on mass set.



SVN revision: 77459
2012-10-04 22:39:10 +00:00
Bruno Dilly 7b7bef6087 ephysics: delete all worlds on exit
sure, it won't work until externals init / shutdown mess is fixed.



SVN revision: 77458
2012-10-04 22:38:58 +00:00
Bruno Dilly 6181303ab5 ephysics: no need to delete all the bodies on test
data del

It's already done when deleting the world.



SVN revision: 77457
2012-10-04 22:38:17 +00:00
Bruno Dilly a3eda42485 ephysics: add a log domain usage counter
This way we assure eina log will be working until the last
thread ends.



SVN revision: 77456
2012-10-04 22:38:11 +00:00
Bruno Dilly 9668304291 ephysics: use multiple threads
Use a mainloop thread and one thread per world dedicated to simulation.

It's using ecore threads, out of the pool.

For now there are still some locks when trying to change physics
elements properties while a simulation is going on, but soon it will
have a queue of properties to be applied after a simulation step, so
it won't lock.



SVN revision: 77455
2012-10-04 22:38:06 +00:00
Leandro Dorileo cfdd39c2d7 ephysics: free overlap filter callback
This patch makes sure the overlap filter callback instance is removed
on world removal.


Patch by: Leandro Dorileo <dorileo@profusion.mobi>



SVN revision: 77454
2012-10-04 22:38:00 +00:00
Ricardo de Almeida Gonzaga 62f7b42c3b ephysics: updated authors.
Patch by: Ricardo de Almeida Gonzaga <ricardo@profusion.mobi>



SVN revision: 77453
2012-10-04 22:37:54 +00:00
Ricardo de Almeida Gonzaga 45c3c60ea3 ephysics: add some references to technical terms.
Patch by: Ricardo de Almeida Gonzaga <ricardo@profusion.mobi>



SVN revision: 77452
2012-10-04 22:37:47 +00:00
Bruno Dilly 005be7be8c ephysics: improve doc description and remove redundant
links




SVN revision: 76701
2012-09-14 22:06:09 +00:00
Bruno Dilly ff792ee8e8 ephysics: improve diagram displayed on docs
SVN revision: 76700
2012-09-14 22:05:54 +00:00
Bruno Dilly 70c3dd925b ephysics: small fixes on docs
Spotted by gastal



SVN revision: 76698
2012-09-14 22:05:29 +00:00
Bruno Dilly 3f27034dc7 ephysics: shrink convex shapes to avoid margin gap
SVN revision: 76563
2012-09-12 21:50:01 +00:00
Leandro Dorileo 81786a748a ephysics: fix issues with world destructor
Makes sure the body is removed from the world before deleting it
so it will not mess with overlapping pair caches, proxies and so on.


Patch by: Leandro Dorileo <dorileo@profusion.mobi>



SVN revision: 76562
2012-09-12 21:49:47 +00:00
Leandro Dorileo 075029bdfe ephysics: soft body memory usage/leak
Added a call for sparsesdf garbage collector after every simulation
avoiding bullet's soft dynamics leaks.


Patch by: Leandro Dorileo <dorileo@profusion.mobi>



SVN revision: 76561
2012-09-12 21:49:29 +00:00
Leandro Dorileo 3ecddb724a ephysics: softbody
** linear/angular joints:
We don't need the linear and angular joints for soft bodies.

Actually these joint's are pulling the soft body towards (0, 0, 0).
The soft body is anchored with the rigid one, so limiting the rigid body
angular and linear movements seems to be enough.

** soft body configs:
Some soft body configurations were tweaked to fix issues of instability
of soft bodies.

** soft body hardness API:
Soft body hardness API was introduced as well.

** points of deformation:
The points of deformation were inverted;

** soft body mass:
Fixed issues with soft body mass changing, now it doesn't "explode" after
changing its mass.


Patch by: Leandro Dorileo <dorileo@profusion.mobi>



SVN revision: 76560
2012-09-12 21:49:14 +00:00
Bruno Dilly 35780ad7cf ephysics: activate all bodies when one is deleted
Otherwise it can lead to scenarios when a body 1, below body 2 is deleted
and body 2 will stay freezed in the air. Gravity won't start to
act over it until it's activated again.



SVN revision: 76155
2012-09-04 22:42:35 +00:00
Bruno Dilly d42b1c51c2 ephysics: fix unused vars and parameters
SVN revision: 76154
2012-09-04 22:42:28 +00:00
Bruno Dilly 06d88ea834 ephysics: pass evas object associated to body on del
event




SVN revision: 76153
2012-09-04 22:42:20 +00:00
Bruno Dilly 11891001f2 ephysics: fix camera move callback call
it should be called after moved flag was set to false
otherwise callback functions moving camera won't work correctly



SVN revision: 76152
2012-09-04 22:42:10 +00:00
Jerome Pinot 62f2c5c1aa ephysics: missing include in dist
SVN revision: 75735
2012-08-27 09:38:07 +00:00
Bruno Dilly 9b56c8b27a EPhysics: expose bodies center of mass.
SVN revision: 75574
2012-08-22 20:05:35 +00:00
Bruno Dilly aa76c79c86 EPhysics: fix tests using vertical impulse
SVN revision: 75573
2012-08-22 20:05:30 +00:00
Bruno Dilly eae54a26ee EPhysics: improve convex shapes
Center of these shapes were wrong, now it's much better.
But collision still seems a bit inaccurate.



SVN revision: 75572
2012-08-22 20:05:25 +00:00
Bruno Dilly 3627234fb8 EPhysics: use vertex reduction utility
Convex meshes often have too many vertices.
This slows down collision detection a lot, and there is no benefit in the
unnecessary details.



SVN revision: 75571
2012-08-22 20:05:19 +00:00
Bruno Dilly e2534363a6 EPhysics: update docs regarding soft bodies
SVN revision: 75570
2012-08-22 20:05:14 +00:00
Bruno Dilly f5891500b0 EPhysics: fix indenting and remove useless lines
No need to set to 0 zeroed memory.



SVN revision: 75569
2012-08-22 20:05:07 +00:00
Bruno Dilly 5044cf3501 EPhysics: remove a rigid ball and weird amount of mass
Let's see what was it masking and focus on making it works with
defaults.



SVN revision: 75568
2012-08-22 20:05:02 +00:00
Bruno Dilly eec20918d0 EPhysics: don't show input msg if won't handle it
Also, respect 80 col



SVN revision: 75567
2012-08-22 20:04:57 +00:00
Bruno Dilly ef82a631a9 EPhysics: keep tests in alphabetical order
SVN revision: 75566
2012-08-22 20:04:51 +00:00
Leandro Dorileo 18743b72ad EPhysics: soft body implementation
Introduces soft body dynamics and calls to create soft circles and boxes.


Patch by: Leandro Dorileo <dorileo@profusion.mobi>



SVN revision: 75564
2012-08-22 20:04:39 +00:00
Bruno Dilly 89eaea1c65 EPhysics: fix bug when changing head of worlds list
Animator callback was working with a not updated list pointer.



SVN revision: 75510
2012-08-21 17:47:29 +00:00
Bruno Dilly dde0746fcb EPhysics: improve bodies group description documentation
SVN revision: 75509
2012-08-21 17:47:24 +00:00
Bruno Dilly a10277b529 EPhysics: don't activate body if not going to apply
forces

Otherwise it won't stop, sleeping thresholds won't work...



SVN revision: 75508
2012-08-21 17:47:18 +00:00
Bruno Dilly 335912df94 EPhysics: fix y component convertion on forces and
impulses




SVN revision: 75480
2012-08-20 22:18:14 +00:00
Bruno Dilly 80f7e6307c EPhysics: consider gravity on forces getter
SVN revision: 75479
2012-08-20 22:17:34 +00:00
Bruno Dilly 335dcc1165 EPhysics: add test for forces API
SVN revision: 75478
2012-08-20 22:17:11 +00:00
Bruno Dilly b66f460e84 EPhysics: test torque forces
SVN revision: 75477
2012-08-20 22:16:02 +00:00
Bruno Dilly 218004c9e3 EPhysics: add forces API
Implement functions to make it possible to control forces acting
over a body.



SVN revision: 75476
2012-08-20 22:15:52 +00:00
Bruno Dilly 4bccde902a EPhysics: rotation set implemented
SVN revision: 75475
2012-08-20 22:14:43 +00:00