Add Quaternion named constructor to Rot3 in the python module
							parent
							
								
									2754613072
								
							
						
					
					
						commit
						868f1511fc
					
				| 
						 | 
				
			
			@ -25,6 +25,16 @@
 | 
			
		|||
using namespace boost::python;
 | 
			
		||||
using namespace gtsam;
 | 
			
		||||
 | 
			
		||||
static Rot3 Quaternion_0(const Vector4& q)
 | 
			
		||||
{
 | 
			
		||||
    return Rot3(Quaternion(q[0],q[1],q[2],q[3]));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static Rot3 Quaternion_1(double w, double x, double y, double z)
 | 
			
		||||
{
 | 
			
		||||
    return Rot3(Quaternion(w,x,y,z));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Prototypes used to perform overloading
 | 
			
		||||
// See: http://www.boost.org/doc/libs/1_59_0/libs/python/doc/tutorial/doc/html/python/functions.html
 | 
			
		||||
gtsam::Rot3  (*AxisAngle_0)(const Vector3&, double) = &Rot3::AxisAngle;
 | 
			
		||||
| 
						 | 
				
			
			@ -40,11 +50,13 @@ BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(equals_overloads, Rot3::equals, 1, 2)
 | 
			
		|||
void exportRot3(){
 | 
			
		||||
 | 
			
		||||
  class_<Rot3>("Rot3")
 | 
			
		||||
    .def(init<>())
 | 
			
		||||
    .def(init<Point3,Point3,Point3>())
 | 
			
		||||
    .def(init<double,double,double,double,double,double,double,double,double>())
 | 
			
		||||
    .def(init<const Matrix3 &>())
 | 
			
		||||
    .def(init<const Matrix &>())
 | 
			
		||||
    .def("Quaternion", Quaternion_0, arg("q"), "Creates a Rot3 from an array [w,x,y,z] representing a quaternion")
 | 
			
		||||
    .def("Quaternion", Quaternion_1, (arg("w"),arg("x"),arg("y"),arg("z")) )
 | 
			
		||||
    .staticmethod("Quaternion")
 | 
			
		||||
    .def("AxisAngle", AxisAngle_0)
 | 
			
		||||
    .def("AxisAngle", AxisAngle_1)
 | 
			
		||||
    .staticmethod("AxisAngle")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue