Commit Graph

49 Commits

Author SHA1 Message Date
Bruno Dilly c2b0c76b74 ephysics: add front and back boundaries
Use it on test "Bouncing 3D"



SVN revision: 78015
2012-10-15 21:54:29 +00:00
Bruno Dilly 3655372571 ephysics: fix world structure coding style
SVN revision: 77804
2012-10-10 20:32:29 +00:00
Bruno Dilly c970090254 ephysics: lights, camera, action!
Add light support.

It uses evas_map_util_3d_lighting() internally and is only applied
over selected bodies.



SVN revision: 77803
2012-10-10 20:32:08 +00:00
Bruno Dilly bdd5ba2115 ephysics: expose z-axis gravity
SVN revision: 77781
2012-10-10 19:17:44 +00:00
Bruno Dilly e5e90c233d ephysics: re-activate bodies when gravity is set
So it can be applied on all the bodies.



SVN revision: 77680
2012-10-09 20:00:36 +00:00
Bruno Dilly c6e04869ea ephysics: don't send a msg per sub step
Only send one msg at the end of the simulation step.



SVN revision: 77471
2012-10-04 22:40:52 +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
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
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
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 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
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
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 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 a3f12a0ae0 EPhysics: fix rate set implementation
Update everything that depends on rate:
 - worlds
 - bodies
 - constraints



SVN revision: 75335
2012-08-16 21:35:20 +00:00
Bruno Dilly 8b5737d2df EPhysics: make it possible to recalculate gravity
SVN revision: 75334
2012-08-16 21:35:14 +00:00
Bruno Dilly ebf3a282fb EPhysics: delete constraints if world is deleted
SVN revision: 75328
2012-08-16 21:34:44 +00:00
Bruno Dilly 1de398ce60 EPhysics: add camera move event
SVN revision: 75228
2012-08-13 22:24:28 +00:00
Bruno Dilly 33613b8f09 EPhysics: Avoid garbagge in cb objects.
SVN revision: 75148
2012-08-10 21:04:42 +00:00
Bruno Dilly 1de4a67ca0 EPhysics: fix world event callbacks management
SVN revision: 75146
2012-08-10 21:04:22 +00:00
Bruno Dilly fb7528829b EPhysics: avoid invalid read / writes on world free
Looks like we'll need to fix discrete dynamics world destructor
on bullet, but current revision is kind of messed.
I'll see what I can do later.

And yes, it will leak the ddw until it's fixed.



SVN revision: 75145
2012-08-10 21:04:16 +00:00
Bruno Dilly 2d2844d05e EPhysics: properly handle body delete
SVN revision: 75141
2012-08-10 21:03:39 +00:00
Bruno Dilly 0bd1f327a4 EPhysics: properly handle world delete
SVN revision: 75140
2012-08-10 21:03:29 +00:00
Bruno Dilly 4d800075e7 EPhysics: use inlist for world's bodies list
SVN revision: 75139
2012-08-10 21:03:06 +00:00
Bruno Dilly 595e8c8195 EPhysics: use inlist for worlds list
SVN revision: 75138
2012-08-10 21:03:01 +00:00
Bruno Dilly ca3e40782a EPhysics: allow user to configure simulation
Required to fine tunning performance or avoid objects going throught
others.



SVN revision: 74659
2012-07-31 19:55:52 +00:00
Bruno Dilly 0520b61219 EPhysics: implement body tracking by camera
It's flicking, code needs to be reviewed.
Theme needs love as well.



SVN revision: 74505
2012-07-27 14:50:36 +00:00
Bruno Dilly 30a6d07376 EPhysics: implement camera position handling
Now it's possibly to keep default updates of evas objects
and has scenes larger than render areas.



SVN revision: 74502
2012-07-27 14:50:03 +00:00
Leandro Dorileo 7b6a83144f EPhysics: collision filter
This patch introduces a collision filter API. Once a rigid body
has been added to some group it must just collide against rigid
bodies in the same group, if no group has been attribute it's
going to collide against any other body.


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



SVN revision: 74501
2012-07-27 14:49:53 +00:00
Leandro Dorileo 6a2d290fce EPhysics: body collision data
This patch introduces a wrapper(EPhysics_Body_Collision) to hold
the collision data(the contact body and collision position).

This data type is used by EPHYSICS_CALLBACK_BODY_COLLISION callback. The
collision detection test is migrated to the new API as well.


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



SVN revision: 74500
2012-07-27 14:49:37 +00:00
Leandro Dorileo 34734a4a72 EPhysics: small/trivial function return fix
This patch fix a compilation warning by _ephysics_world_contact_processed_cb
not returning. Bullet doesn't care about what is returned, so this
is just a compilation warning fix.


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



SVN revision: 74499
2012-07-27 14:49:20 +00:00
Leandro Dorileo ba55257c64 EPhysics: sleeping threshold and max sleep time
This patch introduces calls for setting the body's linear and angular
sleeping thresholds and to set the world's max sleeping time.


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



SVN revision: 74498
2012-07-27 14:48:59 +00:00
Bruno Dilly 564d1c412c EPhysics: fix missing const on some getters
spotted by k-s



SVN revision: 73419
2012-07-06 14:36:40 +00:00
Leandro Dorileo 9b1d6ecb87 EPhysics: worlds solver mode
Add a function to enable/disable the world constraint solver mode.
Also add wrappers for bullets solver modes enumerations, and a function
to query the current status.


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



SVN revision: 73383
2012-07-05 22:53:14 +00:00
Bruno Dilly d1ba36f4ba EPhysics: constraint solver iterations
Functions to get and set the constraint solver number of iterations.

Patch by Leandro Dorileo <dorileo@profusion.mobi>



SVN revision: 73249
2012-07-03 23:24:27 +00:00
Bruno Dilly 4fe7f69cd4 EPhysics: improve log msgs a bit and remove annoying one
Print world and bodies pointers so it's possible to track them.
And remove annoying "step" debug msg.



SVN revision: 73246
2012-07-03 23:21:11 +00:00
Bruno Dilly 9d0b63143b EPhysics: support autodel of bodies outside render area
Now it's possible to request a world to delete bodies outside
render area, so we can save some resources and avoid issues
with world stopped event.



SVN revision: 73245
2012-07-03 23:20:49 +00:00
Bruno Dilly 22d76ad177 EPhysics: fix API regarding geometry and acceleration
units
Avoid messing Evas coordinates (pixels) with meters.
Change gravity setter / getter too.



SVN revision: 73184
2012-07-03 02:17:55 +00:00
Bruno Dilly eb857cbfe1 EPhysics: split the callback enum for body and world
Should avoid a mess in the future.



SVN revision: 73179
2012-07-03 02:09:34 +00:00
Bruno Dilly d983ac3ae5 EPhysics: implement event callback del full for world
match data pointer



SVN revision: 73177
2012-07-03 02:09:12 +00:00
Bruno Dilly ea31a552ef EPhysics: add linear slop setter / getter for world
Constraint solver can be configured using some advanced settings, like
the solver slop factor.

Linear slop on sequencial impulse constraint solver is used as a factor
for penetration. The penetration will the manifold distance + linear slop.



SVN revision: 73066
2012-06-29 22:24:33 +00:00
Bruno Dilly 05988c9feb EPhysics: remove annoying tick dbg msg
SVN revision: 73065
2012-06-29 22:22:43 +00:00
Bruno Dilly 5a47783517 EPhysics: remove dependency
We've stopped using ecore_evas directly.


SVN revision: 72957
2012-06-27 17:58:45 +00:00
Bruno Dilly 28d9f92ef2 EPhysics: a new library comes to E world
It’s a wrapper between Bullet Physics and EFL to add physics effects
in a simple way.

More details on README, TODO, and edevelop mail list =)



SVN revision: 72896
2012-06-26 22:36:12 +00:00