X<0の頂点(面)を削除するというスクリプトを書いているのですが、選択された頂点の内側(囲まれている)面を選択するにはどうすればよいのでしょうか?
http://imgur.com/a/9v8di
vert.facesで頂点から面のリストを取得すると、外側の面まで選択されています。
http://imgur.com/a/pOFmL
このように、X=0の頂点を選択した状態から頂点に囲まれた部分の面だけを選択したいです。
(画像は、プラグインで頂点の内側の面を選択してます、これと同じことをスクリプトで行いたいです)
doc = MQSystem.getDocument() #ドキュメント取得
obj = doc.object #選択しているオブジェクト取得
for o in (range(len(obj))):
if obj[o] != None:
if obj[o].select == 1:
for vi in range(0, obj[o].numVertex): #選択したオブジェクトの、頂点数分繰り返す
vert = obj[o].vertex[vi] #vertで頂点リストを参照
続きを表示...
if vert.getPos().x < 0: #頂点がX<0の頂点だった場合
yz = vert.getPos() #頂点座標を取得
vert.setPos(0,yz.y,yz.z) #Xを0値に移動
if vert.getPos().x == 0: #頂点がX=0の頂点だった場合
doc.addSelectVertex(o,vi) #頂点を選択
for fi in vert.faces: #頂点を共有している面のインデックスリストを取得(頂点の内側の面を選択したい)
obj[o].deleteFace(fi) #面を削除