主要な NURBS クラスの概要

NURBS ファミリの主要なクラスの継承を次のダイアグラムに示します。基本クラスは 1 番上に表示され、上から下、左から右の方向で継承の階層が進みます。NURBSObject は、基本クラスとしても機能する NURBSPointNURBSControlVertexNURBSCurveNURBSSurfaceNURBSCVCurve および NURBSPointCurve を持つ主要な基本クラスです。その他にも NURBS オブジェクトで使用できるクラスがいくつかありますが、NURBS 階層には含まれません。それらのクラスは、NURBSDisplayNURBSSelectionNURBSSetNURBSSurfaceApproximation および NURBSTextureSurface です。

NURBS クラスの階層

NURBSObject クラスは NURBS の基本クラスです。項目の名前を取得/設定する他のクラスに対して共通の、一連のプロパティを提供します。また、 NURBSId プロパティもあります。これは、NURBS クラス間の通信で特定のオブジェクトを指定するために使用する ID です。

NURBSSet クラスは、開発者が 3ds Max NURBS オブジェクトを作成したり、既存の 3ds Max NURBS オブジェクトからデータを取得したりするときに使用するクラスです。NURBSSet は他のオブジェクトのコンテナとして機能します。このクラスには、セットの作成に使用されるさまざまな NURBSObject 派生エンティティ ポイント、カーブ、サーフェス) テーブルが含まれます。さらに、2 つの「ヒューズ」テーブルがあり、1 つはヒューズ カーブ用、もう 1 つはヒューズ サーフェス用に使われます。このテーブルを使用すると、カーブまたはサーフェス内の CV は一緒に「合わさって」または「くっついて」、1 つのカーブまたはサーフェスが移動すると、他のカーブまたはサーフェスもそれに伴って移動できるようになります。このクラスにも、オブジェクトの多面化をビューポートで使用するために三角メッシュに入れたり、プロダクション レンダラーをコントロールするサーフェス近似プロパティがあります。

NURBSPoint クラスは 3D スペースのポイントを記述します。ポイントが 独立 となるか 従属 となるかは、特定のクラスに依存します。独立ポイントとは、位置を定義する上で他のオブジェクトに依存しないポイントです。従属ポイントは依存しているオブジェクトに関連しており、ポイント、カーブまたはサーフェスが移動するときに最初に確立された関係が維持されます。たとえば、別のポイントとの距離が常に一定のポイントを作成できます。オプションは XYZ 相対、法線に沿う、接線に沿う (またはサーフェスに依存するコンストレイント ポイントに対する接線のセット) です。

NURBSControlVertex クラスは NURBS カーブまたは NURBS サーフェスのコントロール頂点を定義します。このクラスは NURBSPoint と同じプロパティを数多く共有し、その他に有理的な重みのプロパティがあります。CV の重みの値は有理数です。つまり、カーブまたはサーフェスの他の CV に比例します。一度にすべての CV の重みを変えても何も影響しません。これは、重みの間の比率は変わらないからです。

NURBSCurve クラスは、NURBS カーブのプロパティを記述します。NURBSPoint クラスと同様、カーブが独立となるか従属となるかは、特定のクラスに依存します。独立カーブとは、位置を定義するために他のオブジェクトに依存しないカーブです。従属カーブとは、その定義が 1 つ以上の他のオブジェクトに依存するオブジェクトです。たとえば、ブレンド カーブは 2 つのテンション パラメータに依存するのと同様に、作成時にブレンドした 2 つの親カーブに依存します。

NURBSSurface クラスは、NURBS サーフェスのプロパティを記述します。NURBSPoint クラスや NURBSCurve クラスと同様、サーフェスが独立となるか従属となるかは特定のクラスに依存します。独立サーフェスとは、位置を定義する上で他のオブジェクトに依存しないサーフェスです。従属サーフェスは、形状が NURBS モデル内の他のサーフェスまたはカーブに従属するサブオブジェクトです。元の親サーフェスまたはカーブのジオメトリを変更すると、従属サーフェスも同様に変更されます。