ich verwende SWIG zum ersten Mal, und finde leider nur wenig hilfreiche Informationen dazu
Ich habe deshalb eine Frage zur Benutzung von SWIG, um C++ Code in Python-Code zu wrappen. Ich verwende in C++ auch die Lib Eigen (tuxfamily), und möchte Objekte dieser Typen (VectorXd, MatrixXd..) als Parameter und Rückgabewerte meiner Methoden verwenden. In Python sollten sie auf numpy (oder andere) Python-Typen gemappt werden.
Mein SWIG-Input ist momentan der:
Code: Alles auswählen
%module myModule
%{
#include "MyClass.h"
%}
%{
#define PY_ARRAY_UNIQUE_SYMBOL SOME_LIBRARY_NAME
#include "numpy/arrayobject.h"
#include "typedefs.h"
%}
%init
%{
import_array();
%}
%include "typemaps.i"
%include "MyClass.h"
Code: Alles auswählen
#define EIGEN_MATRIXBASE_PLUGIN "MatrixBaseAddons.h"
#include <Eigen/Core>
#include <cmath>
typedef double Real;
typedef Eigen::Matrix< Real, Eigen::Dynamic, 1 > ColXR;
typedef Eigen::Matrix< Real, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor, Eigen::Dynamic, Eigen::Dynamic > MatrixXRscipy;
Wenn ich einen Rückgabewert z.b. vom Typ VectorXd in Python ausgeben möchte, dann krieg ich als Output:
Code: Alles auswählen
<swig Object of type 'VectorXd *' at 0x.......>
Code: Alles auswählen
AttributeError: 'PySwigObject' object has no attribute .......
Danke,
s.