1234567891011121314151617181920212223242526272829303132333435363738 |
- // This file is part of libigl, a simple c++ geometry processing library.
- //
- // Copyright (C) 2015 Alec Jacobson <alecjacobson@gmail.com>
- //
- // 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 "parse_rhs.h"
- #include <algorithm>
- template <typename DerivedV>
- IGL_INLINE void igl::matlab::parse_rhs_double(
- const mxArray *prhs[],
- Eigen::PlainObjectBase<DerivedV> & V)
- {
- using namespace Eigen;
- // Use Eigen's map and cast to copy
- V = Map< Matrix<double,Dynamic,Dynamic> >
- (mxGetPr(prhs[0]),mxGetM(prhs[0]),mxGetN(prhs[0]))
- .cast<typename DerivedV::Scalar>();
- }
- template <typename DerivedV>
- IGL_INLINE void igl::matlab::parse_rhs_index(
- const mxArray *prhs[],
- Eigen::PlainObjectBase<DerivedV> & V)
- {
- parse_rhs_double(prhs,V);
- V.array() -= 1;
- }
- #ifdef IGL_STATIC_LIBRARY
- template void igl::matlab::parse_rhs_index<Eigen::Matrix<int, -1, 1, 0, -1, 1> >(mxArray_tag const**, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, 1, 0, -1, 1> >&);
- template void igl::matlab::parse_rhs_index<Eigen::Matrix<int, -1, -1, 0, -1, -1> >(mxArray_tag const**, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, -1, 0, -1, -1> >&);
- template void igl::matlab::parse_rhs_double<Eigen::Matrix<double, -1, -1, 0, -1, -1> >(mxArray_tag const**, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, -1, 0, -1, -1> >&);
- template void igl::matlab::parse_rhs_index<Eigen::Matrix<int, -1, 3, 1, -1, 3> >(mxArray_tag const**, Eigen::PlainObjectBase<Eigen::Matrix<int, -1, 3, 1, -1, 3> >&);
- template void igl::matlab::parse_rhs_double<Eigen::Matrix<double, -1, 3, 1, -1, 3> >(mxArray_tag const**, Eigen::PlainObjectBase<Eigen::Matrix<double, -1, 3, 1, -1, 3> >&);
- #endif
|