选择边循环

时间:2011-08-09 16:56:05

标签: ruby 3d geometry

我正在尝试编写一个在网格中执行循环选择的方法。我遵循Maya帮助文件中提到的定义作为指导。

http://download.autodesk.com/global/docs/maya2012/en_us/index.html?url=files/Polygon_selection_and_creation_Edge_ring_and_edge_loop_selection_tips.htm,topicNumber=d28e121580

  

在Maya中,边循环具有以下属性:

     
      
  • 连接边的顶点必须具有等于4的化合价。 Valency指连接到特定顶点的边数。
  •   
  • 连接序列的标准是序列中的下一个边是共享顶点的第(i + 2nd)个边,按当前边(i)的顺序确定。
  •   
  • 边缘序列(循环)可以在多边形网格上形成开放路径或闭合路径。
  •   
  • 起点和终点边缘不需要等于4的效价。
  •   

我的问题是我现在不知道如何计算边缘的顺序。我一直在寻找没有运气的提示。甚至看着Blender的来源试图弄清楚他们是如何做到的,但这也让我感到沮丧。

1 个答案:

答案 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