// This file is part of libigl, a simple c++ geometry processing library. // // Copyright (C) 2015 Alec Jacobson // // This Source Code Form is subject to the terms of the Mozilla Public License // v. 2.0. If a copy of the MPL was not distributed with this file, You can // obtain one at http://mozilla.org/MPL/2.0/. #include "prepare_lhs.h" #include template IGL_INLINE void igl::matlab::prepare_lhs_double( const Eigen::PlainObjectBase & V, mxArray *plhs[]) { using namespace std; using namespace Eigen; const int m = V.rows(); const int n = V.cols(); plhs[0] = mxCreateDoubleMatrix(m,n, mxREAL); double * Vp = mxGetPr(plhs[0]); for(int i = 0;i IGL_INLINE void igl::matlab::prepare_lhs_logical( const Eigen::PlainObjectBase & V, mxArray *plhs[]) { using namespace std; using namespace Eigen; const int m = V.rows(); const int n = V.cols(); plhs[0] = mxCreateLogicalMatrix(m,n); mxLogical * Vp = static_cast(mxGetData(plhs[0])); for(int i = 0;i IGL_INLINE void igl::matlab::prepare_lhs_index( const Eigen::PlainObjectBase & V, mxArray *plhs[]) { // Treat indices as reals const auto Vd = (V.template cast().array()+1).eval(); return prepare_lhs_double(Vd,plhs); } #ifdef IGL_STATIC_LIBRARY template void igl::matlab::prepare_lhs_index >(Eigen::PlainObjectBase > const&, mxArray_tag**); template void igl::matlab::prepare_lhs_index >(Eigen::PlainObjectBase > const&, mxArray_tag**); template void igl::matlab::prepare_lhs_double >(Eigen::PlainObjectBase > const&, mxArray_tag**); template void igl::matlab::prepare_lhs_index >(Eigen::PlainObjectBase > const&, mxArray_tag**); template void igl::matlab::prepare_lhs_logical >(Eigen::PlainObjectBase > const&, mxArray_tag**); template void igl::matlab::prepare_lhs_double >(Eigen::PlainObjectBase > const&, mxArray_tag**); #endif