シーンの階層構造をたどるときの相対的な名称 (スクリプト)

ブラウザのシーン構造では、
個々の形状の相対的な位置はそれぞれ名称がついています。
スクリプトやプラグインで形状をたどる場合も、この名称で指定することになります。

親形状は「dad」(もしくはparent)、次の形状は「bro」、1つ前の形状は「sis」、子の番兵(sentinel)形状は「son」と呼ばれます。

以下は、ブラウザで選択された形状のdad(parent)/bro/sis/sonを表示するスクリプトです。

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

if shape.has_dad:
  print "親形状 : " + shape.dad.name

if shape.has_bro:
  print "次の形状 : " + shape.bro.name

if shape.has_sis:
  print "前の形状 : " + shape.sis.name

if shape.has_son:
  # 子の一番先頭を取得.
  shape2 = shape.son.bro
  print "子の先頭形状 : " + shape2.name

ルートパートを選択している状態で「shape.dad」を呼ぶとNoneが返ります。
次の形状が存在しない状態で「shape.bro」を呼ぶとNoneが返ります。
前の形状が存在しない状態で「shape.sis」を呼ぶとNoneが返ります。
子形状が存在しない状態で「shape.son」を呼ぶとNoneが返ります。

「shape.son」は、子形状が存在する場合は「番兵」の形状が返されます。
これはセンチネル(sentinel)と呼ばれ、ブラウザには表示されない形状です。
「shape.son.bro」で先頭の子形状を取得することになります。

Translate »