int addprim(int geohandle, string type)
ポイントを持たないポリゴンまたはポリラインを作成します。addvertexを使って、このプリミティブに頂点を追加していくことができます。
作成したプリミティブには必ず最低でも1個の頂点を追加してください。 Houdiniのコードでは空っぽのポリゴンを扱えるようにしてはいるものの、その空っぽのポリゴンのせいでおかしな結果になったり不具合を起こす可能性があります。
int addprim(int geohandle, string type, int pt0)
int addprim(int geohandle, string type, int pt0, int pt1)
int addprim(int geohandle, string type, int pt0, int pt1, int pt2)
int addprim(int geohandle, string type, int pt0, int pt1, int pt2, int pt3)
int addprim(int geohandle, string type, int pt0, int pt1, int pt2, int pt3, int pt4, int pt5, int pt6, int pt7)
ポイント番号で指定したポイントを使ってプリミティブを作成します。
int addprim(int geohandle, string type, int points[])
ポイント番号の配列で指定されたポイントを使ってプリミティブを作成します。
void addprim(int &prim_num, int geohandle, string type, int pt0, int &vertices[])
void addprim(int &prim_num, int geohandle, string type, int pt0, int pt1, int &vertices[])
void addprim(int &prim_num, int geohandle, string type, int pt0, int pt1, int pt2, int &vertices[])
void addprim(int &prim_num, int geohandle, string type, int pt0, int pt1, int pt2, int pt3, int &vertices[])
void addprim(int &prim_num, int geohandle, string type, int pt0, int pt1, int pt2, int pt3, int pt4, int pt5, int pt6, int pt7, int &vertices[])
void addprim(int &prim_num, int geohandle, string type, int points[], int &vertices[])
これらのシグネチャは、指定したvertices
配列を、指定したポイントに該当する新しいプリミティブの頂点番号で埋めます。
これらの頂点番号をsetvertexattribに使用することで、それらの頂点上にアトリビュートを設定することができますが、その頂点番号が頂点の最終番号であるとは限りません。
プリミティブを作成しても、そのポイントが無効な場合には、その配列内の該当する頂点番号は-1
になります。
これらのシグネチャは、新しいプリミティブ番号を返さずに、その番号をprimnum
変数に上書きします。
geohandle
書き出し先のジオメトリハンドル。現在のところ、有効な値は0
またはノードの現行ジオメトリを意味するgeoselfのみです。
(将来、この引数は他のジオメトリに書き出せるようにする予定です。)
type
以下の文字列のどれか:
|
閉じたポリゴン。0個以上のポイントを使用することができます。 |
|
開いたポリゴン。0個以上のポイントを使用することができます。 |
|
四面体プリミティブ。三角錐。 4個のポイントが必要です。このプリミティブに頂点を追加することはできません。 |
“hex” |
六面体プリミティブ。歪んだ立方体。 8個のポイントが必要です。このプリミティブに頂点を追加することはできません。 |
|
球、円、チューブ、メタボール、メタ超二次曲面のプリミティブ。
1個のポイントが必要です。
半径と形状は |
|
チャンネルプリミティブ。プリミティブにチャンネルデータを格納します。0個以上のポイントを使用することができます。 |
|
パックAlembicまたはパックディスクプリミティブ。1個のポイントが必要です。これらのプリミティブに頂点を追加することはできません。 |
Returns
作成したプリミティブのプリミティブ番号、または、ポイントを作成できなかった場合は-1
。
その戻り値をsetprimattribに使用することで、新しいポイント上にアトリビュートを設定することができますが、そのポイント番号がポイントの最終番号であるとは限りません。
setprimintrinsicを使用することで、プリミティブのトランスフォームを設定することができます。例:
matrix3 transform_value = {{0, 0, 0}, {0, 0, 0}, {1, 1, 1}}; setprimintrinsic(geoself(), "transform", prim, transform_value);
Alembicやパックプリミティブのintrinsics(組み込みアトリビュート)を設定することもできます。例:
setprimintrinsic(geoself(), "unexpandedfilename", prim, "test.bgeo");
See also | |
create | |
prim |
|