From 2d4be7ede177a8df7340fe3b209698d591ee8a04 Mon Sep 17 00:00:00 2001 From: Claudio Fernandes Date: Mon, 16 Jan 2017 19:48:23 -0200 Subject: [PATCH] Adapt libavogadro/python to Eigen 3.3 --- libavogadro/src/python/camera.cpp | 2 +- libavogadro/src/python/eigen.cpp | 60 +++++++++++++++++++-------------------- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/libavogadro/src/python/camera.cpp b/libavogadro/src/python/camera.cpp index 69ca87bf8..30b32af7d 100644 --- a/libavogadro/src/python/camera.cpp +++ b/libavogadro/src/python/camera.cpp @@ -10,7 +10,7 @@ using namespace Avogadro; void export_Camera() { - const Eigen::Transform3d& (Camera::*modelview_ptr)() const = &Camera::modelview; + const Eigen::Projective3d& (Camera::*modelview_ptr)() const = &Camera::modelview; Eigen::Vector3d (Camera::*unProject_ptr1)(const Eigen::Vector3d&) const = &Camera::unProject; Eigen::Vector3d (Camera::*unProject_ptr2)(const QPoint&, const Eigen::Vector3d&) const = &Camera::unProject; Eigen::Vector3d (Camera::*unProject_ptr3)(const QPoint&) const = &Camera::unProject; diff --git a/libavogadro/src/python/eigen.cpp b/libavogadro/src/python/eigen.cpp index c1faedbcc..20b4e719d 100644 --- a/libavogadro/src/python/eigen.cpp +++ b/libavogadro/src/python/eigen.cpp @@ -305,9 +305,9 @@ template <> struct ScalarTraits struct innerclass { // - // Eigen::Transform3d --> python array (4x4) + // Eigen::Projective3d --> python array (4x4) // - static PyObject* convert(Eigen::Transform3d const &trans) + static PyObject* convert(Eigen::Projective3d const &trans) { npy_intp dims[2] = { 4, 4 }; PyObject *result = PyArray_SimpleNew(2, dims, PyArray_DOUBLE); @@ -321,9 +321,9 @@ template <> struct ScalarTraits return incref(result); } // - // Eigen::Transform3d* --> python array (4x4) + // Eigen::Projective3d* --> python array (4x4) // - static PyObject* convert(Eigen::Transform3d *trans) + static PyObject* convert(Eigen::Projective3d *trans) { npy_intp dims[2] = { 4, 4 }; PyObject *result = PyArray_SimpleNew(2, dims, PyArray_DOUBLE); @@ -337,9 +337,9 @@ template <> struct ScalarTraits return incref(result); } // - // const Eigen::Transform3d* --> python array (4x4) + // const Eigen::Projective3d* --> python array (4x4) // - static PyObject* convert(const Eigen::Transform3d *trans) + static PyObject* convert(const Eigen::Projective3d *trans) { npy_intp dims[2] = { 4, 4 }; PyObject *result = PyArray_SimpleNew(2, dims, PyArray_DOUBLE); @@ -358,10 +358,10 @@ template <> struct ScalarTraits Transform3d_to_python_array() { #ifndef WIN32 - to_python_converter(); + to_python_converter(); #endif - to_python_converter(); - to_python_converter(); + to_python_converter(); + to_python_converter(); } }; @@ -373,17 +373,17 @@ template <> struct ScalarTraits // Insert an rvalue from_python converter at the tail of the // chain. Used for implicit conversions // - // python array --> Eigen::Transform3d + // python array --> Eigen::Projective3d // // used for: // - // void function(Eigen::Transform3d vec) - // void function(Eigen::Transform3d & vec) - // void function(const Eigen::Transform3d & vec) + // void function(Eigen::Projective3d vec) + // void function(Eigen::Projective3d & vec) + // void function(const Eigen::Projective3d & vec) // - converter::registry::push_back( &convertible, &construct, type_id() ); + converter::registry::push_back( &convertible, &construct, type_id() ); - converter::registry::insert( &convert, type_id() ); + converter::registry::insert( &convert, type_id() ); } static void* convert(PyObject *obj_ptr) @@ -401,7 +401,7 @@ template <> struct ScalarTraits throw_error_already_set(); // the 1D array does not have exactly 3 elements double *values = reinterpret_cast(array->data); - Eigen::Transform3d *c_obj = new Eigen::Transform3d(); + Eigen::Projective3d *c_obj = new Eigen::Projective3d(); double *dataPtr = c_obj->data(); for (int i = 0; i < 16; ++i) @@ -432,7 +432,7 @@ template <> struct ScalarTraits // I think this is a better way to get at the double array, where is this // deleted though? Does Boost::Python do it? double *values = reinterpret_cast(array->data); - Eigen::Transform3d *storage = new Eigen::Transform3d(); + Eigen::Projective3d *storage = new Eigen::Projective3d(); double *dataPtr = storage->data(); for (int i = 0; i < 16; ++i) @@ -467,21 +467,21 @@ class EigenUnitTestHelper void set_vector3d_ptr(Eigen::Vector3d* vec) { m_vector3d = *vec; } void set_const_vector3d_ptr(const Eigen::Vector3d* const vec) { m_vector3d = *vec; } - //Eigen::Transform3d transform3d() { return m_transform3d; } - //Eigen::Transform3d& transform3d_ref() { return m_transform3d; } - const Eigen::Transform3d& const_transform3d_ref() { return m_transform3d; } - Eigen::Transform3d* transform3d_ptr() { return &m_transform3d; } - const Eigen::Transform3d* const_transform3d_ptr() { return &m_transform3d; } - - //void set_transform3d(Eigen::Transform3d vec) { m_transform3d = vec; } - //void set_transform3d_ref(Eigen::Transform3d& vec) { m_transform3d = vec; } - void set_const_transform3d_ref(const Eigen::Transform3d& vec) { m_transform3d = vec; } - void set_transform3d_ptr(Eigen::Transform3d* vec) { m_transform3d = *vec; } - void set_const_transform3d_ptr(const Eigen::Transform3d* const vec) { m_transform3d = *vec; } + //Eigen::Projective3d transform3d() { return m_transform3d; } + //Eigen::Projective3d& transform3d_ref() { return m_transform3d; } + const Eigen::Projective3d& const_transform3d_ref() { return m_transform3d; } + Eigen::Projective3d* transform3d_ptr() { return &m_transform3d; } + const Eigen::Projective3d* const_transform3d_ptr() { return &m_transform3d; } + + //void set_transform3d(Eigen::Projective3d vec) { m_transform3d = vec; } + //void set_transform3d_ref(Eigen::Projective3d& vec) { m_transform3d = vec; } + void set_const_transform3d_ref(const Eigen::Projective3d& vec) { m_transform3d = vec; } + void set_transform3d_ptr(Eigen::Projective3d* vec) { m_transform3d = *vec; } + void set_const_transform3d_ptr(const Eigen::Projective3d* const vec) { m_transform3d = *vec; } private: Eigen::Vector3d m_vector3d; - Eigen::Transform3d m_transform3d; + Eigen::Projective3d m_transform3d; }; #endif @@ -529,6 +529,6 @@ void export_Eigen() Vector3x_to_python_array(); Vector3x_from_python_array(); - // Eigen::Transform3d + // Eigen::Projective3d Transform3d_to_python_array(); Transform3d_from_python_array();