52 lines
1.7 KiB
OpenEdge ABL
52 lines
1.7 KiB
OpenEdge ABL
%module spt
|
|
%{
|
|
// Includes the header in the wrapper code
|
|
#include "../spt/camera.hpp"
|
|
#include "../spt/interface.hpp"
|
|
%}
|
|
|
|
// Some modules need extra imports beside the main .hpp file
|
|
%include "std_array.i"
|
|
%include "std_string.i"
|
|
%include "std_vector.i"
|
|
|
|
// Instantiate templates used by example
|
|
// If the template is too nested (>2), parts of it need to be declared as well
|
|
namespace std {
|
|
%template(DoubleMatrix_3x3) array<array<double, 3>, 3>;
|
|
%template(VectorDouble) vector<double>;
|
|
%template(DoubleMatrix_3x1) array<array<double, 1>, 3>;
|
|
%template(DoubleMatrix_3x4) array<array<double, 3>, 4>;
|
|
%template(Matrix_Jx4) vector<array<double, 4>>;
|
|
%template(Matrix_NxJx4) vector<vector<array<double, 4>>>;
|
|
%template(Matrix_Jx3) vector<array<double, 3>>;
|
|
%template(Matrix_VxNxJx3) vector<vector<vector<array<double, 3>>>>;
|
|
%template(VectorCamera) vector<Camera>;
|
|
%template(DoubleMatrix_2x3) array<array<double, 3>, 2>;
|
|
%template(VectorString) vector<std::string>;
|
|
}
|
|
|
|
// Convert vector to native (python) list
|
|
%naturalvar Camera::K;
|
|
%naturalvar Camera::DC;
|
|
%naturalvar Camera::R;
|
|
%naturalvar Camera::T;
|
|
|
|
// Improve printing of result objects
|
|
%extend Camera {
|
|
std::string __str__() const {
|
|
return $self->to_string();
|
|
}
|
|
}
|
|
|
|
// Ignore: Warning 503: Can't wrap 'operator <<' unless renamed to a valid identifier.
|
|
%warnfilter(503) Camera;
|
|
|
|
// Ignore: Warning 511: Can't use keyword arguments with overloaded functions.
|
|
// The warning is cause by enabling keyword arguments, which doesn't work for vectors.
|
|
#pragma SWIG nowarn=511
|
|
|
|
// Parse the header file to generate wrappers
|
|
%include "../spt/camera.hpp"
|
|
%include "../spt/interface.hpp"
|