You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
896 B
46 lines
896 B
#include "mex.h"
|
|
|
|
#include <igl/readOBJ.h>
|
|
#include <igl/matlab/prepare_lhs.h>
|
|
#include <Eigen/Core>
|
|
|
|
|
|
void mexFunction(
|
|
int nlhs,
|
|
mxArray *plhs[],
|
|
int nrhs,
|
|
const mxArray *prhs[]
|
|
)
|
|
{
|
|
using namespace Eigen;
|
|
/* Check for proper number of arguments */
|
|
|
|
if (nrhs != 1)
|
|
{
|
|
mexErrMsgIdAndTxt("MATLAB:mexcpp:nargin",
|
|
"readOBJ requires 1 input arguments, the path of the file to open");
|
|
}
|
|
|
|
// Read the file path
|
|
char* file_path = mxArrayToString(prhs[0]);
|
|
|
|
MatrixXd V;
|
|
MatrixXi F;
|
|
|
|
// Read the mesh
|
|
if(!igl::readOBJ(file_path,V,F))
|
|
{
|
|
mexErrMsgIdAndTxt("MATLAB:mexcpp:fileio", "igl::readOBJ failed.");
|
|
}
|
|
// Return the matrices to matlab
|
|
switch(nlhs)
|
|
{
|
|
case 2:
|
|
igl::matlab::prepare_lhs_index(F,plhs+1);
|
|
case 1:
|
|
igl::matlab::prepare_lhs_double(V,plhs);
|
|
default: break;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|