Fixed mex compile issues (but many problems remain to run stuff)
parent
56d1d6ae34
commit
cd2c687b54
|
@ -53,7 +53,7 @@ interfacePath = $(top_srcdir)
|
|||
moduleName = gtsam
|
||||
toolboxpath = ../toolbox
|
||||
nameSpace = "gtsam"
|
||||
mexFlags = "${BOOST_CPPFLAGS} -I${prefix}/include -I${prefix}/include/gtsam/linear -I${prefix}/include/gtsam/nonlinear -I${prefix}/include/gtsam/base -I${prefix}/include/gtsam/wrap -I${prefix}/include/gtsam/slam -L${exec_prefix}/lib -lgtsam"
|
||||
mexFlags = "${BOOST_CPPFLAGS} -I${prefix}/include -I${prefix}/include/gtsam -I${prefix}/include/gtsam/base -I${prefix}/include/gtsam/geometry -I${prefix}/include/gtsam/linear -I${prefix}/include/gtsam/nonlinear -I${prefix}/include/gtsam/slam -L${exec_prefix}/lib -lgtsam"
|
||||
all:
|
||||
./wrap ${interfacePath} ${moduleName} ${toolboxpath} ${nameSpace} ${mexFlags}
|
||||
|
||||
|
|
|
@ -9,27 +9,35 @@
|
|||
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
// header file to be included in MATLAB wrappers
|
||||
// Copyright (c) 2008 Frank Dellaert, All Rights reserved
|
||||
// wrapping and unwrapping is done using specialized templates, see
|
||||
// http://www.cplusplus.com/doc/tutorial/templates.html
|
||||
/**
|
||||
* @file matlab.h
|
||||
* @brief header file to be included in MATLAB wrappers
|
||||
* @date 2008
|
||||
* @author Frank Dellaert
|
||||
*
|
||||
* wrapping and unwrapping is done using specialized templates, see
|
||||
* http://www.cplusplus.com/doc/tutorial/templates.html
|
||||
*/
|
||||
|
||||
#include <gtsam/base/Vector.h>
|
||||
#include <gtsam/base/Matrix.h>
|
||||
|
||||
extern "C" {
|
||||
#include <mex.h>
|
||||
}
|
||||
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
#include <list>
|
||||
#include <string>
|
||||
#include <sstream>
|
||||
#include <gtsam/3rdparty/Eigen/Eigen/Core>
|
||||
#include <boost/shared_ptr.hpp>
|
||||
|
||||
using namespace std;
|
||||
using namespace boost; // not usual, but for conciseness of generated code
|
||||
|
||||
// start GTSAM Specifics /////////////////////////////////////////////////
|
||||
typedef Eigen::VectorXd Vector; // NOTE: outside of gtsam namespace
|
||||
typedef Eigen::MatrixXd Matrix;
|
||||
typedef gtsam::Vector Vector; // NOTE: outside of gtsam namespace
|
||||
typedef gtsam::Matrix Matrix;
|
||||
|
||||
// to make keys be constructed from strings:
|
||||
#define GTSAM_MAGIC_KEY
|
||||
|
@ -144,7 +152,7 @@ mxArray* wrap<const Vector >(const Vector& v) {
|
|||
|
||||
// wrap a const BOOST MATRIX into a double matrix
|
||||
mxArray* wrap_Matrix(const Matrix& A) {
|
||||
int m = A.size1(), n = A.size2();
|
||||
int m = A.rows(), n = A.cols();
|
||||
mxArray *result = mxCreateDoubleMatrix(m, n, mxREAL);
|
||||
double *data = mxGetPr(result);
|
||||
// converts from column-major to row-major
|
||||
|
@ -222,7 +230,7 @@ Vector unwrap< Vector >(const mxArray* array) {
|
|||
if (mxIsDouble(array)==false || n!=1) error("unwrap<vector>: not a vector");
|
||||
double* data = (double*)mxGetData(array);
|
||||
Vector v(m);
|
||||
copy(data,data+m,v.begin());
|
||||
for (int i=0;i<m;i++,data++) v(i) = *data;
|
||||
return v;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue