OpenMesh-文件的读取

openmesh的文件操作

//读文件
 OpenMesh::IO::read_mesh(mesh, filename);
 
//写文件
OpenMesh::IO::write_mesh(mesh, filename);

读文件

Mesh src_mesh;
Mesh tar_mesh;
std::string src_file;
std::string tar_file;
std::string out_file;
RegParas paras;

//读文件
Registration* reg;//我新建了一个类,要读取参数并进行初始化
bool use_demean = false;
read_data(src_file, src_mesh, use_demean);
read_data(tar_file, tar_mesh, use_demean);
if(src_mesh.n_vertices()==0 || tar_mesh.n_vertices()==0)
{
   
	exit(0);
}  

double scale;
scale = mesh_scaling(src_mesh, tar_mesh);	
scale = 1;

//写文件
write_data(out_file.c_str(), src_mesh, use_demean, scale);
std::cout << "write result to " << out_file << std::endl;
delete reg;	

read_data(src_file, src_mesh, use_demean);

bool read_data(const std::string filename, Mesh& mesh, bool use_demean)
{
   
	//将文件读到mesh中
    bool read_OK = OpenMesh::IO::read_mesh(mesh, filename);

	std::cout << "filename = " << filename << std::endl;
    if (read_OK)
    {
   
        mesh.request_vertex_status();
        mesh.request_edge_status();
        mesh.request_face_status();

        mesh.request_face_normals();
        mesh.request_vertex_normals();

        printBasicMeshInfo(mesh, use_demean);

        mesh.update_face_normals();
        mesh.update_vertex_normals();

        return true;
    }
    std::cout << "#vertices = " << mesh.n_vertices() << std::endl;
    return false;
}

读文件修改文件1-read_data()

printBasicMeshInfo()中更新点的坐标:
M e s h S c a l e s = [ 1 n ∑ i = 0 N x i , 1 n ∑ i = 0 N y i , 1 n ∑ i = 0 N z i ] MeshScales=[\frac 1 n\sum_{\mathclap{i=0}}^N x_{i},\frac 1 n\sum_{\mathclap{i=0}}^N y_{i},\frac 1 n\sum_{\mathclap{i=0}}^N z_{i}] MeshScales=[n1i=0Nxi,n1

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值