![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenMesh
i.code
这个作者很懒,什么都没留下…
展开
-
拷贝一个OpenMesh对象
OpenMesh的一个对象A,已经包含了若干节点、面等几何元素。如果想要拷贝一份,执行:B=A是不行的,改变B对A是有影响的。正确的做法是:遍历A所有面,遍历每个面的节点,获取节点数据,为新对象B add_vertex(),add_face(),记得要拷贝其他相关属性。 ...原创 2018-07-24 02:36:28 · 702 阅读 · 0 评论 -
OpenMesh入门 验证(关于遍历)
用3dmax画了网格,如下:输出为obj文件,如下:# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware# 创建的文件:06.07.2018 12:16:29## object Rectangle001#v 10.0000 0.0000 0.0000v 10.0000 -10.0000 0.0000v 15.0000 -5.00...原创 2018-07-06 14:50:19 · 2080 阅读 · 9 评论 -
OpenMesh入门6(译自OpenMesh6.3 Documents)
使用mesh属性和特征本例中,我们将演示如何修改位置、法线、颜色、纹理坐标等标准属性的数据类型。前一节中,我们已经学习了通过调用合适的request方法使用标准属性。与自定义属性不同,用户可以指定数据类型,并传递给句柄给mesh,而标准属性中,数据类型通过所谓的特征(traits)结构定义。通过特征结构traits,我们可以自定义并扩展mesh的数据结构,实现这一目的,我们需要修改两个重要的特性:...原创 2018-07-06 01:29:01 · 1773 阅读 · 0 评论 -
OpenMesh入门5(译自OpenMesh6.3 Documents)
使用标准属性本例主要说明以下问题:1.如何添加和移除标准属性2.如何获取和设置标准属性值前面我们已经知道,我们可以绑定额外的数据实体到mesh上,作为mesh的属性。OpenMesh提供一系列所谓标准属性。与自定义属性不同,这些属性拥有特殊的特性和不同的接口,这正是本文关注的事情。下表列出了可用的标准属性及其适用对象(节点、面、边、半边等)。 Vertex Face Edge Halfe...原创 2018-07-06 00:51:18 · 1881 阅读 · 2 评论 -
OpenMesh入门4(译自OpenMesh6.3 Documents)
使用标准模板库算法由于OpenMesh迭代器(几乎)是于标准模板库(STL)迭代器一致的,因此,可以将标准模板库的算法应用于mesh。下面的例子演示了如何使用标准模板库中的for_each结构,而这种结构要比手写循环高效的多。我们将定义一个类,这个类提供mesh的光滑算法,然后定义一个可重用组件。由于STL中没有类似于OpenMesh这样的类,因此,我们要定义的这个类必须是模板类:template...原创 2018-07-06 00:09:59 · 401 阅读 · 0 评论 -
OpenMesh入门3(译自OpenMesh6.3 Documents)
使用(自定义)属性本例主要说明以下问题:1.如何添加和移除自定义属性2.如何获取和设置自定义属性值上一例,我们计算了每个节点的单环领域内所有节点的重心,从存储在一个外部数组中。而如果将数据存储在mesh中,由OpenMesh管理,将更不容易出错。如果能将这样的属性动态挂接到mesh中,那多好。OpenMesh提供动态属性,利用动态属性,可以为每个mesh挂接实体数据(节点、面、边缘、半边甚至mes...原创 2018-07-05 23:50:40 · 701 阅读 · 0 评论 -
OpenMesh入门2(译自OpenMesh6.3 Documents)
使用迭代器和环绕器本例主要说明以下问题:1.如何使用迭代器2.如何使用环绕器这个例子是第一版mesh光滑器。这里,我们将介绍迭代器和环绕器,这两个概念能提两个线性枚举功能:一是线性枚举mesh上的所有节点;二是枚举环绕某个节点的所有节点(例如,环绕与某个节点相邻的所有一环节点)。更多的细节描述,可参考Mesh IteratorsandCirculators。首先,我们要定义我们自己的mesh类型。...原创 2018-07-05 20:37:40 · 585 阅读 · 0 评论 -
OpenMesh入门1(译自OpenMesh6.3Documents)
本例子说明以下问题:1.如何声明你自己的mesh类型MyMesh2.如何向mesh对象添加节点和面3.如何通过IO函数将mesh写至硬盘利用OpenMesh进行开发,首先需要定义你自己的mesh类型MyMesh。OpenMesh支持一般的多边形mesh和特殊的三角面mesh。在这个例子中,我们希望使用留个四边形建立一个立方体,所以,我们选择多边形mesh。OpenMesh也支持不同的mesh内核,...原创 2018-07-05 19:49:14 · 1158 阅读 · 0 评论 -
OpenMesh入门 (关于半边:外行翻译害死人)
OpenMesh中,关于半边,看了若干原文,又看了若干译文,最终的体会是: 外行翻译害死人 所谓out和in,应当理解为“外”和“内”,而不是“出”和“入” 这样,“只有边界的点才有外半边”,不就小儿科了么?...原创 2018-07-07 21:52:56 · 2048 阅读 · 3 评论