글 머리 기호 lib의 btVector3 클래스의 operator + 함수를 래핑하려고합니다. operator +는 클래스 멤버로 정의되지 않고 함수로 정의됩니다.연산자 + 함수를 어떻게 swig로 래핑 할 수 있습니까?
래핑 연산자 + = 클래스 메소드가 잘 작동합니다. swig 인터페이스 파일에서 연산자 정의를 선언하면 (클래스 정의 외부에서만 수행 할 수 있음) swig는 이것을 클래스에 속하는 연산자로 인식하지 못합니다.
%extend btVector3
{
btVector3 __add__(const btVector3& v1, const btVector3& v2) { return operator+(v1, v2); }
};
이 btVector3위한 파이썬 __add__ 방법을 생성하는 통음 이어진다
난 연장 사용하려고. 나는 그러나 다음과 같은 런타임 에러가 발생합니까 :AttributeError: 'module' object has no attribute 'btVector3___add__'
내 파이썬 용어는 가장자리 주위에 약간 거친 - 나는 그것이 더 정확하고 파이썬 만드는 사람을 감사하겠습니다 특히 두 번째 단락에서. – Flexo
감사합니다. 제대로 된 것 같지만 \ __ add__에 대한 서명은 모르고있었습니다. 이제는 매력처럼 작동합니다 : 'btVector3 __add __ (const btVector3 & rhs) { return :: operator + (* self, rhs); }' – tssch