階層構造をたどる (スクリプト)

階層構造をたどるスクリプトです。
階層は木構造で再帰的になっています。
階層をたどるときの相対的な名称については「シーンの階層構造をたどるときの相対的な名称 (スクリプト)」もご参照ください。

scene = xshade.scene()
shape = scene.active_shape()

# 階層をたどる再帰.
def traceHierarchy(depth, shape):
  indentStr = "";
  for i in range(depth):
    indentStr += "    ";
  
  print indentStr + shape.name

  if shape.has_son:
    s = shape.son
    while s.has_bro:
      s = s.bro
      traceHierarchy(depth + 1, s)

# shapeから階層構造をたどって出力.
traceHierarchy(0, shape)

以下のようなブラウザ構成で、ルートパートを選択した状態で上記のスクリプトを実行します。

出力は以下のようになります。

ルートパート
    パート1
        球1
        球2
        パート2
            ポリゴンメッシュ
Translate »