[ODE] Growing objects
shalinor at gmail.com
Wed Aug 1 06:11:20 MST 2007
ODE is a penetration-based solver, which means that inter-penetration
caused by a geom getting bigger is potentially bad... "but"... only if
objects being thrown out of the collision at a rate proportional to
the amount of radius increase is the wrong effect. In this case,
luckily enough, it isn't.
So long as your sphere grows at a rate wherein penetrations can
resolve themselves with a minimum of force being added to the system,
there's really nothing wrong with simply changing the radius of the
sphere (remove old geom, add new geom that's bigger). If you want
growth to happen only when there is nothing obstructing its growth
(without pushing things away), then the approach is to create a geom
that doesn't add force against collisions (but still knows about them)
as a trigger, make that geom match the size you want to grow to, and
disallow growth until all collisions (except for collisions with
itself) leave that trigger geom.
On 8/1/07, Malcolm Ryan <malcolmr at cse.unsw.edu.au> wrote:
> On 01/08/2007, at 2:26 PM, Malcolm Ryan wrote:
> > I have an object with a spherical body in an ODE simulation. I want
> > to make the object "grow" -- increasing its radius and pushing other
> > objects aside. Is there any way to get ODE to handle this?
> Since I only actually want to do this in 2D, it occurs to me that one
> trick would be to have a large sphere sitting only partly embedded in
> the plane and have it move "up" and "down" to cause the circle in the
> plane to grow and shrink. If the other circles in the plane were
> shallow cylinders the collisions ought to work out appropriately.
> Still, a less hacky solution to the general problem would be good.
> "The Christian ideal has not been tried and found wanting;
> it has been found difficult and left untried."
> - G.K.Chesterton, What's Wrong With The World
> ODE mailing list
> ODE at ode.org
More information about the ODE