我正在尝试编写一个在网格中执行循环选择的方法。我遵循Maya帮助文件中提到的定义作为指导。
在Maya中,边循环具有以下属性:
- 连接边的顶点必须具有等于4的化合价。 Valency指连接到特定顶点的边数。
- 连接序列的标准是序列中的下一个边是共享顶点的第(i + 2nd)个边,按当前边(i)的顺序确定。
- 边缘序列(循环)可以在多边形网格上形成开放路径或闭合路径。
- 起点和终点边缘不需要等于4的效价。
我的问题是我现在不知道如何计算边缘的顺序。我一直在寻找没有运气的提示。甚至看着Blender的来源试图弄清楚他们是如何做到的,但这也让我感到沮丧。
答案 0 :(得分:1)
我从未想过如何选择Maya方式的Edge Loops。踩到了确定边缘的顺序。但是进一步挖掘Blender源代码,我发现了他们使用的方法,我能够实现它。
# Blender 2.58a
# editmesh_mods.c
# Line 1854
#
# selects or deselects edges that:
# - if edges has 2 faces:
# - has vertices with valence of 4
# - not shares face with previous edge
# - if edge has 1 face:
# - has vertices with valence 4
# - not shares face with previous edge
# - but also only 1 face
# - if edge no face:
# - has vertices with valence 2