このクラスは、シェイプの記述にコントロール頂点 (CV) を使用する独立サーフェスを定義します。CV は、そのサーフェスを囲むコントロール ラティスを定義します。
コンストラクタ
NURBSCVSurface[<property>:<val>]...
オブジェクトのプロパティはいずれもコンストラクタのオプションのキーワード引数で設定できます。
getObject <nurbsset> <index>
プロパティ
<nurbscvsurface>.uOrder: integer <nurbscvsurface>. vOrder: integer
U 方向および V 方向のサーフェスの順序です。
<nurbscvsurface>.numUKnots: integer <nurbscvsurface>.numVKnots: integer
U 方向および V 方向のサーフェス内のノット数です。この値が変更された場合、以前のノットのデータは保持されません。ノットは数学的に生成されるので、NURBS サーフェスでは、それが表示される 3D ジオメトリック スペース以外にパラメータ スペースも保持されます。つまり、ノットと呼ばれる値の配列では、サーフェス上の各コントロール頂点 (CV) の影響が及ぶ範囲が指定されます。
<nurbscvsurface>.numCVs: point2
U および V 方向のサーフェスのコントロール頂点の数です。この値が変更された場合、以前のコントロール頂点のデータは保持されません。
<nurbscvsurface>.transform: matrix3
NURBSCVSurface の変換行列です。これは、NURBSSet 内の項目の相対位置をコントロールします。
<nurbscvsurface>.uEdgesOverlap: boolean, read-only <nurbscvsurface>.vEdgesOverlap: boolean, read-only
サーフェスが閉じられていない(接線がそのエッジで一致している)場合に、サーフェスのエッジが U と V の一方または両方で重なっている場合は true
です。それ以外の場合は false
です。
<nurbscvsurface>.autoParam:#notAutomatic, #autoCentripetal, #autoUniform
#notAutomatic
、#autoCentripetal
、および #autoUniform
は、[CV サーフェス](CV Surface)ロールアウトの[自動パラメータ再設定](Automatic Reparam)オプションの[なし] (none)、[コードの長さ](chord length)、[均等] (Uniform)にそれぞれ対応します。既定は #notAutomatic
です。
<nurbscvsurface>.rigid: boolean
サーフェスが「リジッド」の場合は true
、それ以外の場合は false
です。リジッド サーフェスでは、サーフェスのサブオブジェクト レベルでそのサーフェスを変換する編集のみ可能です。リジッド サーフェスのポイントまたは CV の移動や、そのいずれかの数の変更はできません。リジッド サーフェスを使用すると、NURBS モデルで使用されるメモリの量を減らすことができます。サーフェスをリジッドにすると、サイズが大きいモデルや複雑なモデルで特にパフォーマンスが向上します。サーフェスがリジッドの場合、ポイントまたはサーフェス CV サブオブジェクト レベルでポイントまたは CV が表示されません。モデルが非リジッド サーフェスもポイント カーブを持たない場合、ポイントおよびサーフェス CV サブオブジェクト レベルはまったく使用できません。
メソッド
closeU <nurbscvsurface>
U 方向のサーフェスを閉じます。
closeV<nurbscvsurface>
V 方向のサーフェスを閉じます。
getUKnot <nurbscvsurface> <u_index>
インデックスで指定された U 方向のノットを取得します。ノット インデックスは 1 で始まります。
setUKnot <nurbscvsurface> <u_index> <float>
インデックスで指定された U 方向のノットを、指定された値に設定します。ノット インデックスは 1 で始まります。
getVKnot <nurbscvsurface> <v_index>
インデックスで指定された V 方向のノットを取得します。ノット インデックスは 1 で始まります。
setVKnot <nurbscvsurface> <v_index> <float>
インデックスで指定された V 方向のノットに、指定された値に設定します。ノット インデックスは 1 で始まります。
getCV <nurbscvsurface> <u_index> <v_index>
指定された U インデックスおよび V インデックスの CV を NURBSControlVertex として取得します。CV インデックスは 1 で始まります。
setCV <nurbscvsurface> <u_index> <v_index> <NURBSControlVertex>
指定された U インデックスおよび V インデックスの CV を、指定された NURBSControlVertex に設定します。CV インデックスは 1 で始まります。
refineU <nurbscvsurface> <v_param>
指定されたパラメトリック U ポイントで、サーフェスの U 方向に補間済みの CV の新規列を追加します。
refineV <nurbscvsurface> <u_param>
指定されたパラメトリック U ポイントで、サーフェスの V 方向に補間済みの CV の新規列を追加します。
refine <nurbscvsurface> <u_param> <v_param>
指定されたパラメトリック UV 位置で、サーフェスに補間済み CV の新規列および行を追加します。
reparameterize <nurbscvsurface> (#centripetal | #uniform)
コードの長さ (#centripetal) または均等 (#uniform) のパラメータ設定により、サーフェスのパラメータを再設定します。
CV カーブおよび CV サーフェスは、「オーダー + CV の数 = ノットの数」の関係に従う必要があります。この関係に従わないと、ほとんどの場合オブジェクトは生成されません。アサーション エラーが発生する場合もあります。