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
This patch makes sure the overlap filter callback instance is removed
on world removal.
Patch by: Leandro Dorileo <dorileo@profusion.mobi>
SVN revision: 77454
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
** 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
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
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
improve docs
It should use a unit based on pixels, not meters.
This way is more compatible with the rest of API and easier
to see the result.
SVN revision: 75472
It was already possible to move and resize using geometry get / set,
but if just one of the actions is wanted, this new API is easier for the user
and save a few operations.
SVN revision: 75471
Just making it possible to fix world rate set.
This code will be modified when all constraints are added as generic
and modified later.
SVN revision: 75333
Linear and angular.
It has to be done on user side, since it requires to keep previous
velocity to calculate it.
I'll expose forces later but I don't think it would be enough
because impulses just modifies the ammount of velocity directly,
it doesn't create a force for a tick or something like that.
So velocity changes caused by impulse wouldn't be get as acceleration.
SVN revision: 75330
Reasons:
- we don't have previewed cases for that (would be code to be implemented
and maintained without use)
- can be done on user side changing world rate, camera position, objects size
SVN revision: 75329
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
This patch introduces the slider constraint, adds an slider constraint
test, move p2p constraint from ephysics_constraint_add to
ephysics_constraint_p2p_add migrates its usage.
Further work will migrate the btConstraint of p2p for Generic6Dof constraint
since it's flexible enough to implement most of constraints.
Patch by: Leandro Dorileo <dorileo@profusion.mobi>
SVN revision: 74699
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
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
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
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
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
Oh, I love when weird things got duplicated over all the project.
Use elm_layout_signal_callback_add instead of
edje_object_signal_callback_add.
SVN revision: 73248
When objects move fast collision detection fails.
We need to expose an way to configure collision detection
so user can optimize usage for her use case.
Also it leaves the canvas dirty sometimes. We need to
verify that as well.
TODO: make theme for spinner and shoot button
SVN revision: 73247
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
Implementation of functions for retrieving both the linear and angular
velocity on x, y and z axis.
Patch by Leandro Dorileo <dorileo@profusion.mobi>
SVN revision: 73182
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
discomfitor spotted some issues, so now all the functions are
marked with @ref, so it will warn if they couldn't be found
on project. Except functions on @see section, since we
are already warned about them.
SVN revision: 73013
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