我正在使用CGAL-4.14中的square_border_parameterizer.cpp示例。我不仅要选择四个角落,而且要决定哪一个是哪个。也就是说,我想指定为参数对(0,0)指定哪个角,参数对将变成(0,1),变成(1,0)和(1,1)。有可能吗?
我尝试了用CGAL提供的Nefertiti示例,并对所选的角进行了几次排列。
corners1.selection.txt:
133 8 0 287corners2.selection.txt:
8 0 287 133角点3.selection.txt:
287 0 8 133然而,当在Meshlab中打开时,result.off在所有三种情况下似乎都是一样的。
我还看了一下源代码,但我还无法得出如何实现我的目标的结论。据我所知,文档只提到了一个人可以选择四个角落。
发布于 2019-05-15 13:24:36
您应该调整的是参数化器在参数化中获取的边界哈菲奇。
在内部(特别是在函数抵消() of Square_border_parameterizer)中,角通过沿边框移动来确定其几何uv位置,从输入中传递的halfedge bhd开始:第一个拐角处将位于uv(0,0),等等。
因此,如果您想修改位于(0,0)的哪个顶点,并查看正在使用的example.cpp,只需添加:
while(source(bhd, sm) != vda[i])
bhd = next(bhd, sm); // walk the border在使用SMP::paramterize()调用i=0,...,3之前,您将获得可能需要的参数化空间的任何旋转。
https://stackoverflow.com/questions/56129768
复制相似问题