#include #include #include #include #include #include #include #include "meshmodel.h" #include #include "meshlabdocumentbundler.h" #include bool MeshDocumentFromBundler(MeshDocument &md, QString filename_out,QString image_list_filename, QString model_filename) { md.addNewMesh(model_filename,QString("model")); std::vector shots; const QString path = QFileInfo(filename_out).absolutePath(); const QString path_im = QFileInfo(image_list_filename).absolutePath()+QString("/"); std::vector image_filenames; vcg::tri::io::ImporterOUT::Open(md.mm()->cm,shots,image_filenames,qPrintable(filename_out), qPrintable(image_list_filename)); md.mm()->updateDataMask(MeshModel::MM_VERTCOLOR); QString curr_path = QDir::currentPath(); QFileInfo imi(image_list_filename); QDir::setCurrent(imi.absoluteDir().absolutePath()); QStringList image_filenames_q; for(unsigned int i = 0; i < image_filenames.size(); ++i) image_filenames_q.push_back(QString::fromStdString(image_filenames[i])); for(size_t i=0 ; iaddPlane(new Plane(fullpath_image_filename,Plane::RGBA)); md.rm()->setLabel(image_filenames_q[i].section('/',1,2)); md.rm()->shot = shots[i]; /*md.rm()->shot.Intrinsics.ViewportPx[0]=md.rm()->currentPlane->image.width(); md.rm()->shot.Intrinsics.ViewportPx[1]=md.rm()->currentPlane->image.height(); md.rm()->shot.Intrinsics.CenterPx[0]=(int)((double)md.rm()->shot.Intrinsics.ViewportPx[0]/2.0f); md.rm()->shot.Intrinsics.CenterPx[1]=(int)((double)md.rm()->shot.Intrinsics.ViewportPx[1]/2.0f);*/ } QDir::setCurrent(curr_path); return true; } bool MeshDocumentFromNvm(MeshDocument &md, QString filename_nvm, QString model_filename) { md.addNewMesh(model_filename,QString("model")); std::vector shots; const QString path = QFileInfo(filename_nvm).absolutePath(); //const QString path_im = QFileInfo(image_list_filename).absolutePath()+QString("/"); std::vector image_filenames; vcg::tri::io::ImporterNVM::Open(md.mm()->cm,shots,image_filenames,qPrintable(filename_nvm)); md.mm()->updateDataMask(MeshModel::MM_VERTCOLOR); QString curr_path = QDir::currentPath(); //QFileInfo imi(image_list_filename); //QDir::setCurrent(imi.absoluteDir().absolutePath()); QStringList image_filenames_q; for(unsigned int i = 0; i < image_filenames.size(); ++i) image_filenames_q.push_back(QString::fromStdString(image_filenames[i])); for(size_t i=0 ; iaddPlane(new Plane(fullpath_image_filename,Plane::RGBA)); md.rm()->setLabel(image_filenames_q[i].section('/',1,2)); md.rm()->shot = shots[i]; /*md.rm()->shot.Intrinsics.ViewportPx[0]=md.rm()->currentPlane->image.width(); md.rm()->shot.Intrinsics.ViewportPx[1]=md.rm()->currentPlane->image.height(); md.rm()->shot.Intrinsics.CenterPx[0]=(int)((double)md.rm()->shot.Intrinsics.ViewportPx[0]/2.0f); md.rm()->shot.Intrinsics.CenterPx[1]=(int)((double)md.rm()->shot.Intrinsics.ViewportPx[1]/2.0f);*/ } QDir::setCurrent(curr_path); return true; }