まず、この疑問を解決しようとしてくれた皆様に感謝いたします。私は最小限のC++プロジェクトをPythonで使用するように変換しています。この努力の背後にある真の理由はスピードです。PyBind - オーバーロードされた関数
私はPyBindに出会い、その能力と提供したドキュメントの量に非常に驚いていました。今、私はそれをやる方法を知らないので、仕事を止める何かがあります。ファイル "MySource.hpp"の下のコードを考えてください。どうやってバインディングを行うことができますか?
struct Point3D
{
public:
double x, y, z;
CPoint3D();
CPoint3D(double x, double y, double z);
inline double Len() const;
inline void Normalize();
};
Point3D VectorCross(const Point3D& pt1, const Point3D& pt2, const Point3D& pt3);
void VectorCross(const float* u, const float* v, float * n);
Point3Dのバインドをクラスとそのメンバー機能の一部として定義できました。しかし、私は、オーバーロードされたメソッド "VectorCross"のためのバインディングを行う方法についての手がかりを持っていません。これには、Point3Dのインスタンスを受け入れるメソッドと、浮動配列へのポインタを受け入れるメソッドの2つがあります。
私がこれまで
PYBIND11_MODULE(mymodule, m)
{
py::class_<Point3D> point3d(m, "Point3D");
point3d.def_readwrite("x", &CPoint3D::x);
point3d.def_readwrite("y", &CPoint3D::y);
point3d.def_readwrite("z", &CPoint3D::z);
point3d.def(py::init<>());
point3d.def(py::init<double , double , double >());
point3d.def("Len", &CPoint3D::Len);
point3d.def("Normalize", &CPoint3D::Normalize);
}
の下に表示されて書いた結合は、誰かがこれを行う方法に私を導いてくださいことはできますか?
よろしく、
'AngleBetweenは()'は何ですか?この関数はコード例ではありません。 –
私は最初に尋ねたものと似た署名をしています。私がコメントを書いていたとき、私は同じライブラリをテストしていたので、それは私の端末上にありました。あなたを混乱させて申し訳ありません。 –