⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 meshviewer.cc

📁 penMesh is a generic and efficient data structure for representing and manipulating polygonal meshes
💻 CC
字号:
//=============================================================================//                                                                            //                               OpenMesh                                     //      Copyright (C) 2001-2005 by Computer Graphics Group, RWTH Aachen       //                           www.openmesh.org                                 //                                                                            //-----------------------------------------------------------------------------//                                                                            //                                License                                     //                                                                            //   This library is free software; you can redistribute it and/or modify it //   under the terms of the GNU Library General Public License as published  //   by the Free Software Foundation, version 2.                             //                                                                             //   This library is distributed in the hope that it will be useful, but       //   WITHOUT ANY WARRANTY; without even the implied warranty of                //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU         //   Library General Public License for more details.                          //                                                                            //   You should have received a copy of the GNU Library General Public         //   License along with this library; if not, write to the Free Software       //   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                 //                                                                            //-----------------------------------------------------------------------------//                                                                            //   $Revision: 1.2 $//   $Date: 2005-12-21 14:01:53 $//                                                                            //=============================================================================#ifdef _MSC_VER#  pragma warning(disable: 4267 4311)#endif#include <iostream>#include <fstream>#include <qapplication.h>#include <qmessagebox.h>#include <OpenMesh/Tools/Utils/getopt.h>#include <OpenMesh/Tools/Utils/Timer.hh>#include <OpenMesh/Apps/QtViewer/MeshViewerWidgetT.hh>#include <OpenMesh/Core/Mesh/Types/TriMesh_ArrayKernelT.hh>struct MyTraits : public OpenMesh::DefaultTraits{  HalfedgeAttributes(OpenMesh::Attributes::PrevHalfedge);};  typedef OpenMesh::TriMesh_ArrayKernelT<MyTraits>  MyMesh;typedef MeshViewerWidgetT<MyMesh> MeshViewerWidget;void usage_and_exit(int xcode);int main(int argc, char **argv){  // OpenGL check  QApplication::setColorSpec( QApplication::CustomColor );  QApplication app(argc,argv);  if ( !QGLFormat::hasOpenGL() ) {    QString msg = "System has no OpenGL support!";    QMessageBox::critical( NULL, "OpenGL", msg + argv[1], 0 );    return -1;  }  int c;  OpenMesh::IO::Options opt;    while ( (c=getopt(argc,argv,"bs"))!=-1 )  {     switch(c)     {       case 'b': opt += OpenMesh::IO::Options::Binary; break;       case 'h':          usage_and_exit(0);       case 's': opt += OpenMesh::IO::Options::Swap; break;       default:          usage_and_exit(1);     }  }  // create widget  MeshViewerWidget w(0, "Viewer");    app.setMainWidget(&w);  // static mesh, hence use strips  w.enable_strips();  w.resize(400, 400);  w.show();   // load scene  if ( optind < argc )    {    OpenMesh::Utils::Timer t;    t.start();    if ( ! w.open_mesh(argv[optind], opt) )    {      QString msg = "Cannot read mesh from file:\n '";      msg += argv[optind];      msg += "'";      QMessageBox::critical( NULL, w.caption(), msg, 0 );      return 1;    }    t.stop();    std::cout << "Loaded mesh in ~" << t.as_string() << std::endl;  }  else  {    QMessageBox::critical( NULL, w.caption(), "Usage: meshviewer <mesh-file>");    return 1;  }  if ( ++optind < argc )  {     if ( ! w.open_texture( argv[optind] ) )     {         QString msg = "Cannot load texture image from file:\n '";        msg += argv[optind];        msg += "'\n\nPossible reasons:\n";        msg += "- Mesh file didn't provide texture coordinates\n";        msg += "- Texture file does not exist\n";        msg += "- Texture file is not accessible.\n";        QMessageBox::warning( NULL, w.caption(), msg, 0 );     }  }  return app.exec();}void usage_and_exit(int xcode){   std::cout << "Usage: meshviewer [-s] [mesh] [texture]\n" << std::endl;   std::cout << "Options:\n"	     << "  -b\n"	     << "    Assume input to be binary.\n\n"             << "  -s\n"             << "    Reverse byte order, when reading binary files.\n"             << std::endl;   exit(xcode);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -