アトリビュートのクラスが事前に分かっていれば、setdetailattrib, setprimattrib, setpointattrib, setvertexattribを使用した方が高速です。
int setattrib(int geohandle, string attribclass, string attribute_name, int element_num, int vertex_num, <type>value, string mode="set")
int setattrib(int geohandle, string attribclass, string attribute_name, int element_num, int vertex_num, <type>value[], string mode="set")
成功したらgeohandle
の値を返し、失敗したら-1
を返します。
Note
アトリビュートが存在しなかった場合、この関数は、デフォルト値が0、空っぽの文字列または空っぽの配列で アトリビュートを作成 します。 数値アトリビュートのデフォルト値を制御したい場合、そのアトリビュートを設定する前にaddattribを使用してください。
アトリビュートが存在しなかった場合、Cd
やorient
などの標準ネームのアトリビュートに対してタイプ情報が自動的に設定されます。
数値アトリビュートのタイプ情報を制御したい場合、そのアトリビュートを設定する前にsetattribtypeinfoを使用してください。
geohandle
書き出し先のジオメトリハンドル。現在のところ、有効な値は0
またはノードの現行ジオメトリを意味するgeoselfのみです。
(将来、この引数は他のジオメトリに書き出せるようにする予定です。)
attribclass
detail
(またはglobal
), point
, prim
, vertex
のどれか。
primgroup
, pointgroup
, vertexgroup
を使用することで、グループから読み込むこともできます。
attribute_name
変更するアトリビュートの名前。
element_num
変更するアトリビュートのポイント番号またはプリミティブ番号。
Detailアトリビュートに関しては、0
を設定します(この引数は、Detailアトリビュートでは無視されます)。
Vertexアトリビュートに関しては、その頂点を含んだプリミティブのプリミティブ番号を設定します。
vertex_num
Vertexアトリビュートに関しては、element_num
で指定したプリミティブ上の頂点番号です。
線形頂点インデックスを使用したいのであれば、element_num
を-1
に設定して、ここで線形頂点インデックスを使用します。
他のDetail/Primitive/Pointアトリビュートに関しては、0
を設定します(この引数は、これらの場合には無視されます)。
value
設定する値。この引数のタイプがアトリビュートタイプと互換性がなければ、その設定が失敗して、この関数は-1
を返します。
Note
VEXプログラム内では、1個のタイプのみを単一アトリビュートに書き出すことができます。
つまり、浮動小数点と整数を混在させて記述することができません。
1
のようなリテラルは整数として書き込まれるので、以前に浮動小数点が書き込まれている場合はその値が無視されることに気を付けてください。
mode
(オプション) 指定すると、これは、関数がアトリビュートの既存の値を変更する方法を制御します。
|
指定した値でアトリビュートを上書きします。 |
|
アトリビュートに値を加算します。 |
|
アトリビュートにその最小値とその値を設定します。 |
|
アトリビュートにその最大値とその値を設定します。 |
|
アトリビュートにその値を乗算します。マトリックスでは、これはマトリックスの乗算をします。ベクトルでは、コンポーネント毎に乗算します。 |
|
ソース値とは無関係にアトリビュートをトグルします。グループのメンバーシップのトグルで役に立ちます。 |
|
文字列、辞書、配列のアトリビュートで有効です。文字列、配列のアトリビュートの場合、ソース値を元の値の最後に追加します。辞書のアトリビュートの場合、元の辞書をソース辞書で更新し、マッチしたキーを置換します。 |
See also | |
attrib |
|