有关openmesh 4.1如何在vs2010以及qt creator中搭建使用
来源:互联网 发布:matlab 矩阵平均数 编辑:程序博客网 时间:2024/06/16 02:11
下载 openmesh
去官网下载最新版的openmesh,下载时注意版本和你选择的是源代码还是已经编译过得,这里我推荐选择编译的,只需要安装即可。
官网下载地址
在官网中选择vs2010版本或你自己想要的版本,下载后选择目录安装即可。
vs2010下的搭建
右键工程文件->属性->vc++目录。在包含目录下添加 openmesh安装路径\include
在包含目录和库目录中依次添加 openmesh安装路径\lib
在连接器->输入中的附加依赖项中添加OpenMeshCored.lib和OpenMeshToolsd.lib,注意,如果这里你需要编译的是release版本的话,将lib文件名的最后的d去掉即可。
到这里编译文件的话会提示没有添加预处理定义_USE_MATH_DEFINES,在c/c++->预处理器中的预处理定义中添加_USE_MATH_DEFINES即可,此时vs2010下的搭建已经完成。
在Qt creator中的搭建
qt creator 生成的是.pro文件,不能像vs2010方便的添加外部库,需要我们自己手动添加,其实也很简单。
打开.pro文件,在其中添加如下代码。
INCLUDEPATH += openmesh安装路径\include
LIBS += openmesh安装路径\lib\OpenMeshCored.lib
LIBS += openmesh安装路径\lib\OpenMeshToolsd.lib
DEFINES += _USE_MATH_DEFINES
需要注意的是,在这里,openmesh安装路径是你自己选的openmesh的安装地址,如我的是
INCLUDEPATH += D:\OpenMesh_4.1\include
LIBS += D:\OpenMesh_4.1\lib\OpenMeshCored.lib
LIBS += D:\OpenMesh_4.1\lib\OpenMeshToolsd.lib
DEFINES += _USE_MATH_DEFINES
在安装路径下,我建议不要出现任何的中文以及空格,否则可能并不能成功。
搭建到这,基本就搭建完成了
下面我给出测试代码已方便你们测试是否搭建成功】
测试代码
//============================================================================= // // 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: 83 $ // $Date: 2009-02-27 17:31:45 +0100 (Fri, 27 Feb 2009) $ // //============================================================================= #include <iostream> // -------------------- OpenMesh #include <OpenMesh/Core/IO/MeshIO.hh> #include <OpenMesh/Core/Mesh/PolyMesh_ArrayKernelT.hh> // ---------------------------------------------------------------------------- typedef OpenMesh::PolyMesh_ArrayKernelT<> MyMesh; // ---------------------------------------------------------------------------- // Build a simple cube and write it to std::cout int main() { MyMesh mesh; // generate vertices MyMesh::VertexHandle vhandle[8]; vhandle[0] = mesh.add_vertex(MyMesh::Point(-1, -1, 1)); vhandle[1] = mesh.add_vertex(MyMesh::Point( 1, -1, 1)); vhandle[2] = mesh.add_vertex(MyMesh::Point( 1, 1, 1)); vhandle[3] = mesh.add_vertex(MyMesh::Point(-1, 1, 1)); vhandle[4] = mesh.add_vertex(MyMesh::Point(-1, -1, -1)); vhandle[5] = mesh.add_vertex(MyMesh::Point( 1, -1, -1)); vhandle[6] = mesh.add_vertex(MyMesh::Point( 1, 1, -1)); vhandle[7] = mesh.add_vertex(MyMesh::Point(-1, 1, -1)); // generate (quadrilateral) faces std::vector<MyMesh::VertexHandle> face_vhandles; face_vhandles.clear(); face_vhandles.push_back(vhandle[0]); face_vhandles.push_back(vhandle[1]); face_vhandles.push_back(vhandle[2]); face_vhandles.push_back(vhandle[3]); mesh.add_face(face_vhandles); face_vhandles.clear(); face_vhandles.push_back(vhandle[7]); face_vhandles.push_back(vhandle[6]); face_vhandles.push_back(vhandle[5]); face_vhandles.push_back(vhandle[4]); mesh.add_face(face_vhandles); face_vhandles.clear(); face_vhandles.push_back(vhandle[1]); face_vhandles.push_back(vhandle[0]); face_vhandles.push_back(vhandle[4]); face_vhandles.push_back(vhandle[5]); mesh.add_face(face_vhandles); face_vhandles.clear(); face_vhandles.push_back(vhandle[2]); face_vhandles.push_back(vhandle[1]); face_vhandles.push_back(vhandle[5]); face_vhandles.push_back(vhandle[6]); mesh.add_face(face_vhandles); face_vhandles.clear(); face_vhandles.push_back(vhandle[3]); face_vhandles.push_back(vhandle[2]); face_vhandles.push_back(vhandle[6]); face_vhandles.push_back(vhandle[7]); mesh.add_face(face_vhandles); face_vhandles.clear(); face_vhandles.push_back(vhandle[0]); face_vhandles.push_back(vhandle[3]); face_vhandles.push_back(vhandle[7]); face_vhandles.push_back(vhandle[4]); mesh.add_face(face_vhandles); // write mesh to output.obj try { if ( !OpenMesh::IO::write_mesh(mesh, "output.off") ) { std::cerr << "Cannot write mesh to file 'output.off'" << std::endl; return 1; } } catch( std::exception& x ) { std::cerr << x.what() << std::endl; return 1; } return 0; }
这是官网文档中的部分代码。运行后会生成一个.off文件。说明执行成功,用openmesh目录下自带的QTviewer可以打开生成的off文件。
- 有关openmesh 4.1如何在vs2010以及qt creator中搭建使用
- OpenMesh+Qt+vs2010
- 在Qt Creator中使用Opencv 2.3
- 在Qt Creator中使用OpenCV库
- 在Qt Creator中使用OpenCV库
- 如何在Qt Creator中创建pri文件,以及pri文件的说明
- Qt在VS2010中使用
- Qt Creator 工程移植到vs2008以及在VS2008中使用qDebug()
- 如何在VS2010 + QT中调用CUDA
- 如何在Qt Creator中调试Ubuntu Scope
- Qt简介以及如何配置Qt使用VS2010进行开发
- Qt简介以及如何配置Qt使用VS2010进行开发
- Qt简介以及如何配置Qt使用VS2010进行开发
- Qt简介以及如何配置Qt使用VS2010进行开发
- Qt简介以及如何配置Qt使用VS2010进行开发
- Qt简介以及如何配置Qt使用VS2010进行开发
- Qt简介以及如何配置Qt使用VS2010进行开发
- Qt简介以及如何配置Qt使用VS2010进行开发
- RHEL7/CENTOS7进入单用户模式重置ROOT密码
- Z-Stack中OSAL定时器事件触发流程分析
- HDU 5441
- 如何将excel单元格的默认格式设置为常规格式
- 遗传算法很好的例子
- 有关openmesh 4.1如何在vs2010以及qt creator中搭建使用
- ie浏览器下的图片旋转问题
- xshell连接虚拟机在家能用到公司就不能用了?
- 深入探究frame和bounds的区别以及setbounds使用
- C++之不同对象的成员函数如何引用指定对象的数据成员
- 如何在Qt应用中退出应用
- Spring aop 实战与详解
- 程序开发中常用到的颜色
- Ubuntu 12.04 / Linux Mint 17.1 下安装TinyOS-2.1.1全过程