[ODE] Problems reseting an object.

Nick Featherston nichaladas at gmail.com
Mon Aug 28 20:52:35 MST 2006


I am trying to reset a sphere Geom after it goes off a table (I am making a
snooker game).

All I want to do is return my white ball to its original position after it
goes into a pocket or falls off the table.

Previously when I was playing around with ODE, I could simply destroy and
re-create spheres when I wanted to reset them,
however for some reason this no longer works with my code.

Using:

dGeomSetPosition(poolBalls[WHITE_BALL].geom, 0.0, 0.0, -6.0);

gives me the error
ODE INTERNAL ERROR 2: invalid operation for geom in locked space in
dGeomSetPosition()

My white ball is stored in an array of structs that contain the dGeomID and
dBodyID.  It was initialised like this:

   //Initialise the balls.
   for(i = 0; i < BALL_COUNT; i++)
   {
      //Create a body for the ball.
      poolBalls[i].body = dBodyCreate(objectWorld);

      //Set balls position.
      dBodySetPosition(poolBalls[i].body, poolPosition[i][0], 0.0,
poolPosition[i][1]);

      //Set the mass of the object.
      dMassSetSphereTotal(&poolBalls[i].mass, 1.0, BALL_RADIUS);
      dBodySetMass(poolBalls[i].body, &poolBalls[i].mass);

      //Create the geom sphere.
      poolBalls[i].geom = dCreateSphere(objectSpace, BALL_RADIUS);

      //Set the geom to this body.
      dGeomSetBody(poolBalls[i].geom, poolBalls[i].body);
   }

When I tried just deleting the body or geom, I get:
Body:
ODE INTERNAL ERROR 2: invalid operation for geom in locked space in
dGeomSetBody()
Geom:
ODE INTERNAL ERROR 2: invalid operation for locked space in dSpaceRemove()

This code was an extension of my previous code where I got deleting and
recreating working.
However now it doesn't work at all.

This is my initialisation of my world and space.  I also have other calls to
set the gravity etc on the world.
   //Create a new world.
   objectWorld = dWorldCreate();

   //Create a space.
   objectSpace = dSimpleSpaceCreate(0);

Any help would be appreciated.

Nick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://q12.org/pipermail/ode/attachments/20060829/abfb0578/attachment.htm


More information about the ODE mailing list