/* Please refer to: * https://pybind11.readthedocs.io/en/stable/advanced/cast/stl.html * These are required to save one copy operation on Python calls. * * NOTES * ================= * * `PYBIND11_MAKE_OPAQUE` will mark the type as "opaque" for the pybind11 * automatic STL binding, such that the raw objects can be accessed in Python. * Without this they will be automatically converted to a Python object, and all * mutations on Python side will not be reflected on C++. */ #include // Support for binding boost::optional types in C++11. // https://pybind11.readthedocs.io/en/stable/advanced/cast/stl.html namespace pybind11 { namespace detail { template struct type_caster> : optional_caster> {}; }} PYBIND11_MAKE_OPAQUE( std::vector>); PYBIND11_MAKE_OPAQUE(gtsam::Point2Pairs); PYBIND11_MAKE_OPAQUE(gtsam::Point3Pairs); PYBIND11_MAKE_OPAQUE(gtsam::Pose3Pairs); PYBIND11_MAKE_OPAQUE(std::vector); PYBIND11_MAKE_OPAQUE( gtsam::CameraSet>); PYBIND11_MAKE_OPAQUE(gtsam::CameraSet>);