class_pybind.cpp
Go to the documentation of this file.
1 
2 
3 #include <pybind11/eigen.h>
4 #include <pybind11/stl_bind.h>
5 #include <pybind11/pybind11.h>
6 #include <pybind11/operators.h>
7 #include "gtsam/nonlinear/utilities.h" // for RedirectCout.
8 
9 #include "folder/path/to/Test.h"
10 
11 #include "wrap/serialization.h"
12 #include <boost/serialization/export.hpp>
13 
14 
15 
16 
17 
18 using namespace std;
19 
20 namespace py = pybind11;
21 
22 PYBIND11_MODULE(class_py, m_) {
23  m_.doc() = "pybind11 wrapper of class_py";
24 
25 
26  py::class_<FunRange, std::shared_ptr<FunRange>>(m_, "FunRange")
27  .def(py::init<>())
28  .def("range",[](FunRange* self, double d){return self->range(d);}, py::arg("d"))
29  .def_static("create",[](){return FunRange::create();});
30 
31  py::class_<Fun<double>, std::shared_ptr<Fun<double>>>(m_, "FunDouble")
32  .def("templatedMethodString",[](Fun<double>* self, double d, string t){return self->templatedMethod<string>(d, t);}, py::arg("d"), py::arg("t"))
33  .def("multiTemplatedMethodStringSize_t",[](Fun<double>* self, double d, string t, size_t u){return self->multiTemplatedMethod<string,size_t>(d, t, u);}, py::arg("d"), py::arg("t"), py::arg("u"))
34  .def_static("staticMethodWithThis",[](){return Fun<double>::staticMethodWithThis();});
35 
36  py::class_<Test, std::shared_ptr<Test>>(m_, "Test")
37  .def(py::init<>())
38  .def(py::init<double, const gtsam::Matrix&>(), py::arg("a"), py::arg("b"))
39  .def("return_pair",[](Test* self, const gtsam::Vector& v, const gtsam::Matrix& A){return self->return_pair(v, A);}, py::arg("v"), py::arg("A"))
40  .def("return_pair",[](Test* self, const gtsam::Vector& v){return self->return_pair(v);}, py::arg("v"))
41  .def("return_bool",[](Test* self, bool value){return self->return_bool(value);}, py::arg("value"))
42  .def("return_size_t",[](Test* self, size_t value){return self->return_size_t(value);}, py::arg("value"))
43  .def("return_int",[](Test* self, int value){return self->return_int(value);}, py::arg("value"))
44  .def("return_double",[](Test* self, double value){return self->return_double(value);}, py::arg("value"))
45  .def("return_string",[](Test* self, string value){return self->return_string(value);}, py::arg("value"))
46  .def("return_vector1",[](Test* self, const gtsam::Vector& value){return self->return_vector1(value);}, py::arg("value"))
47  .def("return_matrix1",[](Test* self, const gtsam::Matrix& value){return self->return_matrix1(value);}, py::arg("value"))
48  .def("return_vector2",[](Test* self, const gtsam::Vector& value){return self->return_vector2(value);}, py::arg("value"))
49  .def("return_matrix2",[](Test* self, const gtsam::Matrix& value){return self->return_matrix2(value);}, py::arg("value"))
50  .def("arg_EigenConstRef",[](Test* self, const gtsam::Matrix& value){ self->arg_EigenConstRef(value);}, py::arg("value"))
51  .def("return_field",[](Test* self, const Test& t){return self->return_field(t);}, py::arg("t"))
52  .def("return_TestPtr",[](Test* self, const std::shared_ptr<Test> value){return self->return_TestPtr(value);}, py::arg("value"))
53  .def("return_Test",[](Test* self, std::shared_ptr<Test> value){return self->return_Test(value);}, py::arg("value"))
54  .def("return_Point2Ptr",[](Test* self, bool value){return self->return_Point2Ptr(value);}, py::arg("value"))
55  .def("create_ptrs",[](Test* self){return self->create_ptrs();})
56  .def("create_MixedPtrs",[](Test* self){return self->create_MixedPtrs();})
57  .def("return_ptrs",[](Test* self, std::shared_ptr<Test> p1, std::shared_ptr<Test> p2){return self->return_ptrs(p1, p2);}, py::arg("p1"), py::arg("p2"))
58  .def("print_",[](Test* self){ py::scoped_ostream_redirect output; self->print();})
59  .def("__repr__",
60  [](const Test& self){
61  gtsam::RedirectCout redirect;
62  self.print();
63  return redirect.str();
64  })
65  .def("set_container",[](Test* self, std::vector<testing::Test> container){ self->set_container(container);}, py::arg("container"))
66  .def("set_container",[](Test* self, std::vector<std::shared_ptr<testing::Test>> container){ self->set_container(container);}, py::arg("container"))
67  .def("set_container",[](Test* self, std::vector<testing::Test&> container){ self->set_container(container);}, py::arg("container"))
68  .def("get_container",[](Test* self){return self->get_container();})
69  .def_readwrite("model_ptr", &Test::model_ptr);
70 
71  py::class_<PrimitiveRef<double>, std::shared_ptr<PrimitiveRef<double>>>(m_, "PrimitiveRefDouble")
72  .def(py::init<>())
73  .def_static("Brutal",[](const double& t){return PrimitiveRef<double>::Brutal(t);}, py::arg("t"));
74 
75  py::class_<MyVector<3>, std::shared_ptr<MyVector<3>>>(m_, "MyVector3")
76  .def(py::init<>());
77 
78  py::class_<MyVector<12>, std::shared_ptr<MyVector<12>>>(m_, "MyVector12")
79  .def(py::init<>());
80 
81  py::class_<MultipleTemplates<int, double>, std::shared_ptr<MultipleTemplates<int, double>>>(m_, "MultipleTemplatesIntDouble");
82 
83  py::class_<MultipleTemplates<int, float>, std::shared_ptr<MultipleTemplates<int, float>>>(m_, "MultipleTemplatesIntFloat");
84 
85  py::class_<MyFactor<gtsam::Pose2, gtsam::Matrix>, std::shared_ptr<MyFactor<gtsam::Pose2, gtsam::Matrix>>>(m_, "MyFactorPosePoint2")
86  .def(py::init<size_t, size_t, double, const std::shared_ptr<gtsam::noiseModel::Base>>(), py::arg("key1"), py::arg("key2"), py::arg("measured"), py::arg("noiseModel"))
87  .def("print_",[](MyFactor<gtsam::Pose2, gtsam::Matrix>* self, const string& s, const gtsam::KeyFormatter& keyFormatter){ py::scoped_ostream_redirect output; self->print(s, keyFormatter);}, py::arg("s") = "factor: ", py::arg("keyFormatter") = gtsam::DefaultKeyFormatter)
88  .def("__repr__",
89  [](const MyFactor<gtsam::Pose2, gtsam::Matrix>& self, const string& s, const gtsam::KeyFormatter& keyFormatter){
90  gtsam::RedirectCout redirect;
91  self.print(s, keyFormatter);
92  return redirect.str();
93  }, py::arg("s") = "factor: ", py::arg("keyFormatter") = gtsam::DefaultKeyFormatter);
94 
95 
96 #include "python/specializations.h"
97 
98 }
99 
Vector3f p1
ArrayXcf v
Definition: Cwise_arg.cpp:1
Eigen::MatrixXd Matrix
Definition: base/Matrix.h:43
Definition: Half.h:150
static const KeyFormatter DefaultKeyFormatter
Definition: Key.h:43
GeneralSFMFactor< SfmCamera, Point3 > MyFactor
Eigen::VectorXd Vector
Definition: Vector.h:38
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
Definition: Key.h:35
RealScalar s
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const ArgReturnType arg() const
std::string str() const
return the string
ADT create(const Signature &signature)
detail::initimpl::constructor< Args... > init()
Binds an existing constructor taking arguments Args...
Definition: pybind11.h:1460
static Point3 p2
PYBIND11_MODULE(class_py, m_)
Point2 t(10, 10)


gtsam
Author(s):
autogenerated on Sat May 8 2021 02:41:47