【OpenMesh】Training:Getting Started with OpenMesh
内容出自236329 - Digital Geometry Processing, Spring2013 - Announcements上的OpenMesh Assignment感觉比较好,适合刚开始学习的同学。
练习要求:
这次的练习主要是写两个函数,calc_valences()和color_coding(),函数主要完成了计算一个Vertex的valence以及根据这个valence给图形上色,其中vertex的valence是保存在customer的property中。
关键代码:
mesh_.add_property(Valence,"Valence");
void ValenceViewer::calc_valences()
{
// EXERCISE 1.2 /////////////////////////////////////////////////////////////
// Compute valence of every vertex of "mesh_" and store them in each vertex
// using for example custom attributes via dynamic customization
// (hint: use the Mesh::VertexIter iterator) // Implement something here
Mesh::VertexIter v_end=mesh_.vertices_end();
//Mesh::Scalar TempValence=0;
OpenMesh::VPropHandleT<int> Valence;
mesh_.add_property(Valence,"Valence");
for (Mesh::VertexIter v_it=mesh_.vertices_begin();v_it!=v_end;++v_it)
{
mesh_.property(Valence,v_it);
for (Mesh::VertexVertexIter vv_it=mesh_.vv_iter(v_it);vv_it;++vv_it)
{
mesh_.property(Valence,v_it)+=1;
}
//cout<<mesh_.property(Valence,v_it)<<endl;
}
/////////////////////////////////////////////////////////////////////////////
} //----------------------------------------------------------------------------- void
ValenceViewer::color_coding()
{
// EXERCISE 1.3 /////////////////////////////////////////////////////////////
// Implement a color visualization of your choice that shows the valence of
// each vertex of "mesh_".
// (hint: use Mesh::Color color type)
// Implement something here
Mesh::VertexIter v_end=mesh_.vertices_end();
//OpenMesh::VPropHandleT<int> Valence;
Mesh::Color Green= Mesh::Color(0,255,0);
Mesh::Color Red=Mesh::Color(255,0,0);
Mesh::Color Blue=Mesh::Color(0,0,255);
int Valence;
OpenMesh::VPropHandleT<int> vPH;
for (Mesh::VertexIter v_it=mesh_.vertices_begin();v_it!=v_end;++v_it)
{
mesh_.get_property_handle(vPH,"Valence");
Valence=mesh_.property(vPH,v_it.handle());
if (Valence>=4&&Valence<6)
{
mesh_.set_color(v_it.handle(),Blue);
}
else if (Valence>=7)
{
mesh_.set_color(v_it.handle(),Red);
}
else
{
mesh_.set_color(v_it.handle(),Green);
}
//mesh_.set_color(v_it.handle(),Green);
}
cout<<"Edge:"<<mesh_.n_edges()<<"Face"<<mesh_.n_faces()<<"Vertex"<<mesh_.n_vertices()<<endl;
/////////////////////////////////////////////////////////////////////////////
}
【OpenMesh】Training:Getting Started with OpenMesh的更多相关文章
- 【NLP】前戏:一起走进条件随机场(一)
前戏:一起走进条件随机场 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务中都有 ...
- 【NLP】蓦然回首:谈谈学习模型的评估系列文章(一)
统计角度窥视模型概念 作者:白宁超 2016年7月18日17:18:43 摘要:写本文的初衷源于基于HMM模型序列标注的一个实验,实验完成之后,迫切想知道采用的序列标注模型的好坏,有哪些指标可以度量. ...
- 【BZOJ】1002:轮状病毒(基尔霍夫矩阵【附公式推导】或打表)
Description 轮状病毒有很多变种,所有轮状病毒的变种都是从一个轮状基产生的.一个N轮状基由圆环上N个不同的基原子和圆心处一个核原子构成的,2个原子之间的边表示这2个原子之间的信息通道.如下图 ...
- 【scikit-learn】06:make_blobs聚类数据生成器
版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/kevinelstri/article/ ...
- 【7】解决:移动端点击a链接出现蓝色边框
[1]_blank : 浏览器总在一个新打开.未命名的窗口中载入目标文档. [2]title : 鼠标悬浮显示的文字. [3]href : 跳转到哪个链接. a{ border: no ...
- 【OpenCV】边缘检测:Sobel、拉普拉斯算子
推荐博文,博客.写得很好,给个赞. Reference Link : http://blog.csdn.net/xiaowei_cqu/article/details/7829481 一阶导数法:梯度 ...
- 【MavenWeb】初探:创建一个Maven Web项目
第一步:创建一个Simple的Maven项目 直接点下一步,把name上面的几个部分填写好,直接Finish即可. 就可以看到如下的结构: 注意点1:如果按照网上的其他一些做法来创建,你会发现少了sr ...
- 【原创】Js:日期处理(日期格式必须【yyyy-mm-dd】才能转成long的毫秒!其他的不是【年-月-日】的格式,结果会是【NaN】)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- openstack【Kilo】汇总:包括20英文文档、各个组件新增功能及Kilo版部署
OpenStack Kilo版本发布 20英文文档OpenStack Kilo版本文档汇总:各个操作系统安装部署.配置文档.用户指南等文档 Kilo版部署 openstack[Kilo]入门 [准备篇 ...
随机推荐
- Asp.net vNext 学习之路(一)
概述 asp.net vNext 也叫 asp.net 5.0,意思是微软推出的下一个版本的asp.net.可以说是微软对asp.net的一个比较重大的重新设计, asp.net vNext是一 个比 ...
- Centos7 ocsp功能验证
转载:https://blog.csdn.net/tsh185/article/details/8107248 先按照Centos7创建CA和申请证书创建PKI所需要的文件 运行服务器端: opens ...
- 【ASP.NET MVC】Ajax提交表单
下面这段代码主要有几个特点: 1.Ajax提交表单 2.表单中有一个<input type="file"/> 3.当选择完图片后,利用AJAX提交表单,并在执行成功后返 ...
- thinkphp5.0生命周期
本篇内容我们对ThinkPHP5.0的应用请求的生命周期做大致的介绍,以便于开发者了解整个执行流程. 1.入口文件 用户发起的请求都会经过应用的入口文件,通常是 public/index.php文件. ...
- mybatis基础之一
SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE conf ...
- PHP包管理
前言 在nodejs中,存在npm,python中也存在pip,而php之前不存在类似的东西,导致想要安装一个包,只能去复制代码,但是现在,使用composer可以简单的安装一个包(但是compose ...
- 外行人都能看懂的SpringCloud
一.前言 只有光头才能变强 认识我的朋友可能都知道我这阵子去实习啦,去的公司说是用SpringCloud(但我觉得使用的力度并不大啊~~)... 所以,这篇主要来讲讲SpringCloud的一些基础的 ...
- 【centos 7】搭FTP服务和web访问
步骤:安装 vsftpd-->增加用户-->配置vsftpd和用户权限 -->配置iptables 安装httpd,开放http访问 /var/tmp/user1下目录 1.安装和用 ...
- HDU 1880 简单Hash
题目链接:[http://acm.hdu.edu.cn/showproblem.php?pid=1880] 中文题面,题意很简单: 题解: 把每个 魔咒 和 对应的功能分别Hash,然后分别映射到ma ...
- FFTW3学习笔记1:VS2015下配置FFTW3(快速傅里叶变换)库
一.FFTW简介 FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散傅里叶变换的标准C语言程序集,其由MIT的M.Frigo 和S. ...