Register convertion between numpy and eigen in a separated submodule

release/4.3a0
Ellon Mendes 2015-11-17 17:59:43 +01:00
parent a0064f3aab
commit ff1cd140bb
6 changed files with 57 additions and 48 deletions

View File

@ -1,2 +1,3 @@
import registernumpyeigen
import noiseModel import noiseModel
import geometry import geometry

View File

@ -0,0 +1 @@
/libregisternumpyeigen_python.so

View File

@ -0,0 +1 @@
from libregisternumpyeigen_python import *

View File

@ -47,30 +47,6 @@ bool (Pose3::*equals_0)(const gtsam::Pose3&, double) const = &Pose3::equals;
BOOST_PYTHON_MODULE(libgeometry_python) BOOST_PYTHON_MODULE(libgeometry_python)
{ {
// NOTE: Don't know if it's really necessary to register the matrices convertion here.
import_array();
NumpyEigenConverter<Vector>::register_converter();
NumpyEigenConverter<Vector1>::register_converter();
NumpyEigenConverter<Vector2>::register_converter();
NumpyEigenConverter<Vector3>::register_converter();
NumpyEigenConverter<Vector4>::register_converter();
NumpyEigenConverter<Vector5>::register_converter();
NumpyEigenConverter<Vector6>::register_converter();
NumpyEigenConverter<Vector7>::register_converter();
NumpyEigenConverter<Vector8>::register_converter();
NumpyEigenConverter<Vector9>::register_converter();
NumpyEigenConverter<Vector10>::register_converter();
NumpyEigenConverter<Matrix>::register_converter();
NumpyEigenConverter<Matrix2>::register_converter();
NumpyEigenConverter<Matrix3>::register_converter();
NumpyEigenConverter<Matrix4>::register_converter();
NumpyEigenConverter<Matrix5>::register_converter();
NumpyEigenConverter<Matrix6>::register_converter();
NumpyEigenConverter<Matrix7>::register_converter();
NumpyEigenConverter<Matrix8>::register_converter();
NumpyEigenConverter<Matrix9>::register_converter();
class_<Point3>("Point3") class_<Point3>("Point3")
.def(init<>()) .def(init<>())
.def(init<double,double,double>()) .def(init<double,double,double>())

View File

@ -74,30 +74,6 @@ struct BaseWrap : Base, wrapper<Base>
BOOST_PYTHON_MODULE(libnoiseModel_python) BOOST_PYTHON_MODULE(libnoiseModel_python)
{ {
// NOTE: Don't know if it's really necessary to register the matrices convertion here.
import_array();
NumpyEigenConverter<Vector>::register_converter();
NumpyEigenConverter<Vector1>::register_converter();
NumpyEigenConverter<Vector2>::register_converter();
NumpyEigenConverter<Vector3>::register_converter();
NumpyEigenConverter<Vector4>::register_converter();
NumpyEigenConverter<Vector5>::register_converter();
NumpyEigenConverter<Vector6>::register_converter();
NumpyEigenConverter<Vector7>::register_converter();
NumpyEigenConverter<Vector8>::register_converter();
NumpyEigenConverter<Vector9>::register_converter();
NumpyEigenConverter<Vector10>::register_converter();
NumpyEigenConverter<Matrix>::register_converter();
NumpyEigenConverter<Matrix2>::register_converter();
NumpyEigenConverter<Matrix3>::register_converter();
NumpyEigenConverter<Matrix4>::register_converter();
NumpyEigenConverter<Matrix5>::register_converter();
NumpyEigenConverter<Matrix6>::register_converter();
NumpyEigenConverter<Matrix7>::register_converter();
NumpyEigenConverter<Matrix8>::register_converter();
NumpyEigenConverter<Matrix9>::register_converter();
class_<BaseWrap,boost::noncopyable>("Base") class_<BaseWrap,boost::noncopyable>("Base")
.def("print", pure_virtual(&Base::print)) .def("print", pure_virtual(&Base::print))
; ;

View File

@ -0,0 +1,54 @@
/* ----------------------------------------------------------------------------
* GTSAM Copyright 2010, Georgia Tech Research Corporation,
* Atlanta, Georgia 30332-0415
* All Rights Reserved
* Authors: Frank Dellaert, et al. (see THANKS for the full author list)
* See LICENSE for the license information
* -------------------------------------------------------------------------- */
/**
* @file libregisternumpyeigen_python.cpp
* @brief register conversion matrix between numpy and Eigen
* @author Ellon Paiva Mendes (LAAS-CNRS)
**/
#include <boost/python.hpp>
#include <numpy_eigen/NumpyEigenConverter.hpp>
#include <gtsam/base/Matrix.h>
#include <gtsam/base/Vector.h>
using namespace boost::python;
using namespace gtsam;
BOOST_PYTHON_MODULE(libregisternumpyeigen_python)
{
import_array();
NumpyEigenConverter<Vector>::register_converter();
NumpyEigenConverter<Vector1>::register_converter();
NumpyEigenConverter<Vector2>::register_converter();
NumpyEigenConverter<Vector3>::register_converter();
NumpyEigenConverter<Vector4>::register_converter();
NumpyEigenConverter<Vector5>::register_converter();
NumpyEigenConverter<Vector6>::register_converter();
NumpyEigenConverter<Vector7>::register_converter();
NumpyEigenConverter<Vector8>::register_converter();
NumpyEigenConverter<Vector9>::register_converter();
NumpyEigenConverter<Vector10>::register_converter();
NumpyEigenConverter<Matrix>::register_converter();
NumpyEigenConverter<Matrix2>::register_converter();
NumpyEigenConverter<Matrix3>::register_converter();
NumpyEigenConverter<Matrix4>::register_converter();
NumpyEigenConverter<Matrix5>::register_converter();
NumpyEigenConverter<Matrix6>::register_converter();
NumpyEigenConverter<Matrix7>::register_converter();
NumpyEigenConverter<Matrix8>::register_converter();
NumpyEigenConverter<Matrix9>::register_converter();
}