#include "parse_rhs.h" #include template IGL_INLINE void igl::parse_rhs_double( const mxArray *prhs[], Eigen::PlainObjectBase & V) { using namespace std; using namespace Eigen; // set number of mesh vertices const int n = mxGetM(prhs[0]); // set vertex position pointers double * Vp = mxGetPr(prhs[0]); const int dim = mxGetN(prhs[0]); typedef typename DerivedV::Scalar Scalar; Matrix VT; Scalar * V_data; if(DerivedV::IsRowMajor) { VT.resize(dim,n); V_data = VT.data(); }else { V.resize(n,dim); V_data = V.data(); } copy(Vp,Vp+n*dim,V_data); if(DerivedV::IsRowMajor) { V = VT.transpose(); } } template IGL_INLINE void igl::parse_rhs_index( const mxArray *prhs[], Eigen::PlainObjectBase & V) { parse_rhs_double(prhs,V); V.array() -= 1; } #ifdef IGL_STATIC_LIBRARY template void igl::parse_rhs_index >(mxArray_tag const**, Eigen::PlainObjectBase >&); template void igl::parse_rhs_index >(mxArray_tag const**, Eigen::PlainObjectBase >&); template void igl::parse_rhs_double >(mxArray_tag const**, Eigen::PlainObjectBase >&); #endif