On this page |
専用関数
VEXには、ジオメトリグループを扱うための関数がいくつかあります:
グループ内のエレメントの数を取得します |
|
指定したエレメント番号がグループ内にあるかどうかをテストします |
|
グループ名またはグループ構文をポイント番号/プリミティブ番号のリストに変換します |
|
指定した名前のグループの内容を編集します |
存在していないグループにエレメントを追加すると、そのグループが作成されます。
既存グループの取得
"intrinsic" Detailアトリビュートのedgegroups
, pointgroups
, primitivegroups
, vertexgroups
を読み込むことで、
既存のグループ名の配列を取得することができます。
string groups[] = detailintrinsic(0, "pointgroups")
グループをアトリビュートとして読み込む
一般的なアトリビュートを読み込む関数のattribのattribclass
引数にジオメトリレベル(Detail, Primitive, Point, Vertex)を指定することで、そのレベルのアトリビュートを読み込むことができます。
代わりにprimgroup
, pointgroup
, vertexgroup
をクラスとして指定することで、アトリビュートと同じようにグループの内容を読み込むことができます。
これらのクラスを指定した時、"エレメント番号"はグループリスト内のインデックスになり、"アトリビュート値"は、そのリストの指定したインデックスのポイント/プリミティブ/頂点の番号になります。
foo
プリミティブグループ内のプリミティブ番号を取得します
int group_size = attriblen() int prim_num; for (int i = 0; i < group_size; i++) { // "*group"クラスを使用すると、そのエレメント番号がグループリストのインデックスになります。 prim_num = attrib(0, "primgroup", "foo", i) // ...プリミティブに何かしらの処理をします... }