bullet lib の btVector3 クラスの operator+ 関数をラップしようとしています。operator+ は、クラス メンバーとしてではなく、関数として定義されています。
クラスメソッドである operator+= のラッピングは正常に機能しています。swig インターフェイス ファイルで operator+ を宣言すると (これはクラス定義の外でのみ行うことができます)、swig はこれをクラスに属する演算子として認識しません。
拡張を使用しようとしました:
%extend btVector3
{
btVector3 __add__(const btVector3& v1, const btVector3& v2) { return operator+(v1, v2); }
};
これにより、btVector3 の python __add__ メソッドが swig によって生成されます。ただし、次の実行時エラーが発生します。
AttributeError: 'module' object has no attribute 'btVector3___add__'