OpenMesh 读写网格控制(读取写入纹理坐标,法向等)
OpenMesh读取网格默认是不自动读取obj网格中的法向,纹理坐标等信息的,写入网格同样也是。所以要读取(或写入)这些信息需要修改默认的选项。
先看一下其读写网格的函数
template<class Mesh>
bool OpenMesh::IO::read_mesh(
Mesh &_mesh,
const std::string &_filename,
Options &_opt,
bool _clear = true
)
template<class Mesh >
bool OpenMesh::IO::write_mesh(
const Mesh &_mesh,
const std::string &_filename,
Options _opt = Options::Default,
std::streamsize _precision =
)
函数中的参数 Options 就可以控制读写其他信息。
OpenMesh的IO::Options::Flag
在OpenMesh的官方文档中,有很多关于IO的options,更详细的内容请看这里 http://www.openmesh.org/media/Documentations/OpenMesh-Doc-Latest/a00231.html#details
enum Flag
{
Default = 0x0000, Binary = 0x0001, MSB = 0x0002, LSB = 0x0004,
Swap = 0x0006, VertexNormal = 0x0010, VertexColor = 0x0020, VertexTexCoord = 0x0040,
EdgeColor = 0x0080, FaceNormal = 0x0100, FaceColor = 0x0200, FaceTexCoord = 0x0400,
ColorAlpha = 0x0800, ColorFloat = 0x1000, Custom = 0x2000
}
这些options可以让你自定义读取/写入网格。
OpenMesh 读网格
如果想要在读取obj网格的时候自动读取纹理坐标,只需要添加读取纹理坐标的option,注意在读取网格之前要先给纹理坐标分配内存,即 request_vertex_texcoords2D()。读取法向或其他信息也是一样。
。
OpenMesh::IO::Options opt_read = 0x0040; //选项控制读取纹理坐标
ptr_mesh_->request_vertex_texcoords2D();
if ( !OpenMesh::IO::read_mesh(*ptr_mesh_, byfilename.data(), opt_read) )
{
std::cerr<< "Cannot Open mesh to file '1.obj'" << std::endl;
return;
}
OpenMesh 写网格
如果要想在写入网格时写入顶点的法向信息,也是同样的。
OpenMesh::IO::Options opt_write = OpenMesh::IO::Options::VertexNormal;
if (!OpenMesh::IO::write_mesh(*ptr_mesh_, "mesh.obj", opt_write))
{
std::cerr << "Cannot Write mesh to file" << std::endl;
return;
}
如果要控制写入网格的数据精度,也很简单:
OpenMesh::IO::write_mesh(*ptr_mesh_, "mesh.obj", opt_write,)
OpenMesh 读写网格控制(读取写入纹理坐标,法向等)的更多相关文章
- 外设:K9F2G08 nandflash 底层读写、控制驱动程序,可随机读写
/****************************************************************************** Copyright (C), 2001- ...
- Python文件操作:文件的打开关闭读取写入
Python文件操作:文件的打开关闭读取写入 一.文件的打开关闭 Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作. 文件操作都分为以下几个步骤: 1.打开文 ...
- java 读写word java 动态写入 模板文件
import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import ja ...
- JXL读取,写入Excel
JXL读取,写入Excel2003 相关阅读:poi 读写excel2003:http://www.cnblogs.com/gavinYang/p/3576739.htmlpoi 读写excel200 ...
- OSG学习:计算纹理坐标
在很多时候,直接指定纹理坐标是非常不方便的,如曲面纹理坐标,只有少数的曲面(如圆锥.圆柱等)可以在不产生扭曲的情况下映射到平面上,其他的曲面在映射到表面时都会产生一定程度的扭曲.一般而言,曲面表面的曲 ...
- Java poi读取,写入Excel2003
Java poi读取,写入Excel2003 相关阅读:poi读写Excel2007:http://www.cnblogs.com/gavinYang/p/3576741.htmljxl读写excel ...
- Java poi读取,写入Excel2007
Java poi读取,写入Excel2007 相关阅读:poi读写Excel2003:http://www.cnblogs.com/gavinYang/p/3576739.htmljxl读写excel ...
- Python 读取写入配置文件 —— ConfigParser
Python 读取写入配置文件 —— ConfigParser Python 读取写入配置文件很方便,可使用内置的 configparser 模块:可查看源码,如博主本机地址: “C:/python2 ...
- [PHP]socket的连接超时 与 读取/写入超时
socket处理时有两种超时 , 分为连接超时 和 读取/写入数据超时 1. stream_socket_client 函数中的超时时间是连接超时 , 默认是php.ini中的default_sock ...
随机推荐
- NPOI教程
NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. NPOI 官方网站:http://npoi.codeplex.com/( ...
- 《Head First Servlet JSP》学习笔记
- 08.01 签到! js 作用域
js 作用域 : 1.js 没有块作用域 : for (var i = 0;i < 4; i++){ } alert(i) // i = 3 2.js 没有动态作用域: function f1( ...
- host位置
windows xp/2003/vista/2008用户HOSTS文件是在“c:\windows\system32\drivers\etc”
- locustio压力测试
2015年7月17日 22:19:17 星期五 这里记录下学习道路, 防止忘了 操作系统是centos: 首先是linux系统, 装有Python 和 Python-devel (否则安装软件会提示p ...
- codeforces 492B. Vanya and Lanterns 解题报告
题目链接:http://codeforces.com/problemset/problem/492/B #include <cstdio> #include <cstdlib> ...
- 混合高斯模型:opencv中MOG2的代码结构梳理
/* 头文件:OurGaussmix2.h */ #include "opencv2/core/core.hpp" #include <list> #include&q ...
- CCF 最大的矩形
问题描述 试题编号: 3 试题名称: 最大的矩形 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个 ...
- 使用cocoapods导入第三方类库后 头文件没有代码提示?
选择Target -> Build Settings 菜单,找到\”User Header Search Paths\”设置项 新增一个值"${SRCROOT}",并且选择\ ...
- August 27th 2016 Week 35th Saturday
Life is a series of commas, not periods. 人生是一系列的逗号,而不是句号. Sometimes I would rather life to be like a ...