Войти
ПрограммированиеФорумФизика

ODE 0.8 колизии цилиндр - плоскость

#0
20:26, 22 мар. 2007

Господа, такая проблемка:
при коллизии цилиндр - плоскость как только цилиндр ложится на плоскость основанием, получаем:
Unhandled exception at 0x0040d4e4 in blabla.exe: 0xC0000005: Access violation reading location 0xccccccdc
в:

 dJointAttach(c, dGeomGetBody(contacts[i].geom.g1), dGeomGetBody(contacts[i].geom.g2)); 
Настройки такие:
dWorldSetContactSurfaceLayer (carWorldID,0.001);
dWorldSetContactMaxCorrectingVel (carWorldID,1000000);
...
dWorldQuickStep(0.01);
...
const int N=30;
  dContact contacts[N];
  int n=dCollide(body1,body2,N,&contacts[0].geom,sizeof(dContactGeom));
  for(int i = 0; i < n; i++)
  {
        contacts[i].surface.mode = dContactBounce;
    contacts[i].surface.mu = 250;
    contacts[i].surface.bounce = 0.5;
    contacts[i].surface.bounce_vel = 0.5;
    dJointID c = dJointCreateContact(carWorldID,cGroup,&contacts[i]);
    dJointAttach(c, dGeomGetBody(contacts[i].geom.g1), dGeomGetBody(contacts[i].geom.g2));
    
  }
....
со сферой все нормально.
Подскажите  в чем дело?


#1
22:32, 24 мар. 2007

вылечил заменой:
int n=dCollide(body1,body2,N,&contacts[0].geom,sizeof(dContactGeom));
на
int n=dCollide(body1,body2,N,&contacts[0].geom,sizeof(dContact));
Однако.

ПрограммированиеФорумФизика

Тема в архиве.