物理引擎系统-ode
目录
三、物理引擎系统-ode——dBodySetPosition
四、物理引擎系统-ode——dBodySetRotation
五、物理引擎系统-ode——dBodySetQuaternion
六、物理引擎系统-ode——dBodySetLinearVel
一、物理引擎系统-ode——dBodySetData
void dBodySetData (dBodyID b, void *data)
{
dAASSERT (b);
b->userdata = data;
}
二、物理引擎系统-ode——dBodyGetData
void *dBodyGetData (dBodyID b)
{
dAASSERT (b);
return b->userdata;
}
三、物理引擎系统-ode——dBodySetPosition
void dBodySetPosition (dBodyID b, dReal x, dReal y, dReal z)
{
dAASSERT (b);
b->pos[0] = x;
b->pos[1] = y;
b->pos[2] = z;
// notify all attached geoms that this body has moved
for (dxGeom *geom = b->geom; geom; geom = dGeomGetBodyNext (geom))
dGeomMoved (geom);
}
四、物理引擎系统-ode——dBodySetRotation
void dBodySetRotation (dBodyID b, const dMatrix3 R)
{
dAASSERT (b && R);
dQuaternion q;
dRtoQ (R,q);
dNormalize4 (q);
b->q[0] = q[0];
b->q[1] = q[1];
b->q[2] = q[2];
b->q[3] = q[3];
dQtoR (b->q,b->R);
// notify all attached geoms that this body has moved
for (dxGeom *geom = b->geom; geom; geom = dGeomGetBodyNext (geom))
dGeomMoved (geom);
}
五、物理引擎系统-ode——dBodySetQuaternion
void dBodySetQuaternion (dBodyID b, const dQuaternion q)
{
dAASSERT (b && q);
b->q[0] = q[0];
b->q[1] = q[1];
b->q[2] = q[2];
b->q[3] = q[3];
dNormalize4 (b->q);
dQtoR (b->q,b->R);
// notify all attached geoms that this body has moved
for (dxGeom *geom = b->geom; geom; geom = dGeomGetBodyNext (geom))
dGeomMoved (geom);
}
六、物理引擎系统-ode——dBodySetLinearVel
void dBodySetLinearVel (dBodyID b, dReal x, dReal y, dReal z)
{
dAASSERT (b);
b->lvel[0] = x;
b->lvel[1] = y;
b->lvel[2] = z;
}