MPxSurfaceShape と MPxSurfaceShapeUI は必須です。シェイプの主な機能はこの 2 つのクラスに分割され、描画と選択のコードが評価コードから区分されています。
このクラスは、シェイプの UI 以外の部分を定義します。このクラスの目的は、ユーザ定義ジオメトリを Maya の DAG で表現することです。MPxComponentShape クラスは MPxSurfaceShape から派生して、コンポーネントを持つシェイプをサポートする基本機能を提供します。
このクラスは、ジオメトリのコントロール ポイント イテレータを Maya に提供します。イテレータは、ジオメトリ内でポイントの照会と設定を一般的に実行します。イテレータは、アトリビュートに関連するコンポーネントがシェイプに含まれる場合に使用します。
このクラスは、DG 接続を介して渡すことができるジオメトリのコンテナを Maya に提供するために使用します。多くの場合は、ジオメトリに関する情報のすべてをデータとして渡す方が、別々のアトリビュートとして渡すより能率的です。Maya のデフォーマを使用してシェイプを処理する場合は、シェイプの入力アトリビュートと出力アトリビュートとしてデータ クラスを提供する必要があります。
このクラスは、MPxSurfaceShapeUI の drawUV メソッドにより、ユーザ定義シェイプに対する現在の UV 描画状態を指定するために使用されます。drawUV コールを受けとるには、API ユーザは、MPxSurfaceShapeUI の canDrawUV メソッドをオーバーライドする必要があります。