それがまったく同じ問題である場合(そしてそれがまだあなたに関連している場合は、ほぼ2か月後)、Dunnoですが、Luabindを使用してBulletbtTransformsをバインドするのに問題がありました。たとえば、これはあなたが説明したのと同じエラーを与えました:
void bindBtTransform(lua_State *L) {
luabind::module(L)
[
luabind::class_<btTransform>("btTransform")
// constructors
.def(luabind::constructor<>())
// methods
// INCORRECT -------------------------------------------------------
.def("getOrigin", &btTransform::getOrigin)
];
return;
}
ただし、getOrigin()関数の完全な署名を指定すると、次のように機能しました。
void bindBtTransform(lua_State *L) {
luabind::module(L)
[
luabind::class_<btTransform>("btTransform")
// constructors
.def(luabind::constructor<>())
// methods
// CHANGE TO THIS-------------------------------------------------
.def("getOrigin", (const btVector3& (btTransform::*)() const)&btTransform::getOrigin)
];
return;
}
それがあなたのために働くことを願っています。変更を加えたとき、問題はすぐに解決しました。
まだエラーが発生していますが、btQuaternionsの乗算演算子を定義した場合のみです。私はそれが同様の修正であることを望んでいます。