diff --git a/include/eigenpy/quaternion.hpp b/include/eigenpy/quaternion.hpp index 9b89fe2f4a2a7ecc0cbdf0d173ca8fe1ae64631e..1f824eced7d5beafa4ff044ebb8e978fc3fedc7a 100644 --- a/include/eigenpy/quaternion.hpp +++ b/include/eigenpy/quaternion.hpp @@ -110,7 +110,6 @@ namespace eigenpy void visit(PyClass& cl) const { cl - .def(bp::init<>(bp::arg("self"),"Default constructor")[bp::return_value_policy<bp::return_by_value>()]) .def(bp::init<Matrix3>((bp::arg("self"),bp::arg("R")), "Initialize from rotation matrix.\n" "\tR : a rotation matrix 3x3.")[bp::return_value_policy<bp::return_by_value>()]) @@ -129,6 +128,8 @@ namespace eigenpy (bp::arg("vec4"))), "Initialize from a vector 4D.\n" "\tvec4 : a 4D vector representing quaternion coefficients in the order xyzw.") + .def("__init__",bp::make_constructor(&QuaternionVisitor::DefaultConstructor), + "Default constructor") .def(bp::init<Scalar,Scalar,Scalar,Scalar> ((bp::arg("self"),bp::arg("w"),bp::arg("x"),bp::arg("y"),bp::arg("z")), "Initialize from coefficients.\n\n" @@ -269,9 +270,14 @@ namespace eigenpy return q; } + static Quaternion* DefaultConstructor() + { + return new Quaternion; + } + static Quaternion* FromOneVector(const Vector4& v) { - Quaternion* q(new Quaternion(v)); + Quaternion* q(new Quaternion(v[3],v[0],v[1],v[2])); return q; }