ODE默认所有物体都受重力影响,当我们不希望考虑重力时,须手动将重力影响消除,在ODE中是靠函数dBodySetGravityMode ( b, mode);实现,而DELTA3D并没有将这个函数封装起来,即默认所有物体都受重力影响,解决办法有三:
l 将重力设为0;
l 在我们自己的应用程序中include <ode/ode.h>,调用函数 dBodySetGravityMode()实现;
l 为平台通用化,在delta3d中实现,如下过程:
Dtcore中scene.h添加函数声明:
// Set the gravity mode 工业仿真添加。默认全部受重力影响,但mode为时取消重力影响
void SetGravityMode(dBodyID b, int mode);
scene.cpp添加函数定义:
// 工业仿真添加
void Scene::SetGravityMode(dBodyID b, int mode)
{
dBodySetGravityMode ( b, mode);
}
将decore重新编译,即可!