インタフェース: xViewChecker

インタフェース > コア インタフェース > xViewChecker

 

   

ビューポート シェーディング - クイック ナビゲーション

   

コア インタフェース - クイック ナビゲーション

xViewChecker コア インタフェースは、xView ジオメトリ チェッカー機能と相互作用するためのプロパティとメソッドを公開しています。3ds Max 2010 以降で使用可能です。

   

プロパティ:

xViewChecker.on : bool : Read|Write 	 

xView チェッカーを有効/無効にします。

   

xViewChecker.activeIndex : index : Read|Write   

アクティブな xView チェッカーのインデックスを取得/設定します。

   

xViewChecker.seeThrough : bool : Read|Write 

xView チェッカーの[シースルー](See-Through)オプションの状態を取得/設定します。

   

xViewChecker.autoUpdate : bool : Read|Write 

xView チェッカーの[自動更新](Auto Update)オプションの状態を取得/設定します。true に設定すると、チェック結果の xView が自動的に更新されます。

   

xViewChecker.displayTextUpTop : bool : Read|Write 

xView チェッカーの[ビューの上段に表示](Display On Top)オプションを取得/設定します。

   

メソッド:

<integer>xViewChecker.getNumCheckers() 

登録されている xView チェッカーの数を返します。

   

<TSTR>xViewChecker.getCheckerName <index>index 

インデックスで指定された xView チェッカーの名前を返します。

   

<DWORD>xViewChecker.getCheckerID <index>index 

インデックスで指定された xView チェッカーの ID を返します。

   

<DWORD>xViewChecker.getActiveCheckerID() 

アクティブな xView チェッカーの ID を返します。

   

<void>xViewChecker.setActiveCheckerID <DWORD>ID 

指定された ID を持つ xView チェッカーをアクティブにします。チェック機能がアクティブである場合、このxView チェッカーがアクティブなチェッカーになります。

   

<bool>xViewChecker.doesCheckerHavePropDlg <index>index 

インデックスで指定された xView チェッカーにプロパティ ダイアログ ボックスがある場合は true、ない場合は false を返します。

   

<void>xViewChecker.showCheckerPropDlg <index>index 

インデックスで指定された xView チェッカーのプロパティ ダイアログ ボックスを表示します。インデックスの基数は ゼロです。

   

<void>xViewChecker.popupMenuSelect()

xView チェッカーのポップアップ メニューを現在のマウス位置に開きます。

   

<void>xViewChecker.selectResults <time>time 

指定された時間の結果を選択します。これにより、チェッカーの結果に基づいて、チェックされたジオメトリ オブジェクトの頂点、エッジ、または面の選択が設定されます。

   

<enum>xViewChecker.getCurrentReturnVal() 

getCurrentReturnVal enums: {#Failed|#Vertices|#Edges|#Faces} 

現在のチェッカーの戻り値を取得します。これは、チェックの失敗、もしくはチェックが成功した頂点、エッジ、または面に対応する、4 つの名前値のいずれかです。

   

<integer>xViewChecker.getCurrentOutputCount() 

現在の出力カウントを返します。現在のチェッカーが検索条件に従って検出した、サブオブジェクト要素(頂点、エッジ、または面)の数です。

   

<TSTR by value>xViewChecker.getCurrentString() 

チェッカーによってビューポート上部の中央に表示されている現在の文字列を返します。このメソッドは、チェッカーの結果をログ記録したり、UI の別の場所に結果を表示したりする目的で使用できます。

   

カスタムのジオメトリ チェックを行う MAXScript 関数の定義

以下の関数を使用すると、付属のチェッカーリストにはないユーザ定義の xView チェッカーを実装するための、カスタム MAXScript 関数を登録できます。また、チェッカーを実行して結果を表示し、そのチェッカーを登録解除することもできます。

注:

MAXScript を使用して新しい xView チェッカーを 登録すると、その新しいチェッカーは、別のチェッカーがアクティブである場合にビューポートの下部のチェッカーリ ストに表示されます。3ds Max メニュー システムにアクション項目として xView チェッカーを公開する通常のマクロ スクリプトが表示されるビューポート メニューには自動的には表示 されません

メニュー システムにカスタム xView を公開する新しいマクロ スクリプトを定義し、これを手動または MAXScript で xView のメニューに追加する必要があります。詳細については、チュートリアル第 4 部を参照してください。

   

<bool>xViewChecker.unRegisterChecker <string>name 

指定された名前を持つカスタム xView チェッカーを登録解除します。

   

<index>xViewChecker.registerChecker <value>checkerFunc <value>isSupportedFunc <enum>type <string>name <value>popupDlgFunc <value>textOverrideFunc <value>displayOverrideFunc 

type enums: {#Failed|#Vertices|#Edges|#Faces} 

カスタムの MAXScript 関数を使用して xView チェッカーを登録します。関数が特定のチェッカーに合わない場合(たとえば、表示の上書きやテキストの上書きが求められていない場合など)、代わりに値 undefined を引数として渡します。これにより、チェッカーは各機能を無視します。

checkerFunc

チェックを実行するために呼び出されるカスタムの MAXScript 関数です。

この関数は、チェックを実行する時間、チェック対象のノード、結果を格納するための参照配列の 3 つの引数を必要とします。配列は空で渡され、その配列にフラグの設定対象とみなされたサブオブジェクト要素のインデックスを追加するコードを実装するかどうかは関数のライターに委ねられます。次に、表示関数(既定値のものか、MAXScript displayOverride 関数)がこの配列を使用して、配列内のインデックスで指定されたサブオブジェクトのハイライト表示または選択を行います。

関数から返される結果は、以下の整数となります。

1: 結果の配列には頂点インデックスが含まれます。

2: 結果の配列にはエッジのインデックスが含まれます。

3: 結果の配列には面のインデックが含まれます。

0 または上記以外の値: チェックが失敗し、結果は表示されません。

isSupportedFunc

選択されているノードがテスト可能かどうかを判定するために呼び出されるカスタムの MAXScript 関数です。ノードにテストを適用できる場合は true、適用できない場合には false を返します。

type

テスト/表示されるサブオブジェクト タイプを定義する列挙子です。

#Failed、#Vertices、#Edges、 #Faces のいずれかになります。

name

テストの名前を定義する文字列です。後でカスタムのジオメトリ チェッカーにアクセスしたり、これを登録解除または再登録したりするなどの用途に使用できます。

popupDlgFunc

このチェッカー用のカスタム セットアップ ダイアログ ボックスを実装できるカスタム MAXScript 関数です。MAXScript 関数の代わりに undefined を渡すと、そのチェッカーにはダイアログ ボタンが表示されません。引数は受け取らず、特定の値も返しません。

textOverrideFunc

ビューポートでチェッカーの名前の横に表示されるカスタム テキストを返すカスタムの MAXScript 関数です。引数は受け取らず、文字列を返します。

displayOverrideFunc

代替の表示モードを実装できるカスタム MAXScript 関数です。MAXScript 関数の代わりに undefined を渡すと、代わりにジオメトリ チェッカー システムの既定値の表示メソッドが使用されます。

この関数は、時間、ノード、アクティブ ビューポートのウィンドウ ハンドル、チェッカーによって生成された結果配列の 4 つの引数を必要とします。

この関数は、ほぼ同じ引数を使用する以下のメソッドを呼び出すことができます。

<void>xViewChecker.displayResults <color>color <time>time <node>node <HWND>hwnd <enum>type <&index array>results 

type enums: {#Failed|#Vertices|#Edges|#Faces} 
results is In and Out parameter 

現在のチェッカーの結果を表示します。このメソッドをカスタム displayOverride 関数内で使用すると、既定値のチェッカー表示の外観を変更できます。たとえば、使用するカラーやハイライト表示するサブオブジェクト要素を変更できます。

color

ビューポート内に結果を表示するためのカラーを定義します。

time

チェックが実行された時間を定義します。

node

結果を表示するノードを定義します。

hwnd

displayOverride 関数によって渡されたウィンドウ ハンドルを定義します。

type

表示するサブオブジェクトの種類を定義し、 #Failed、#Vertices、#Edges、 #Faces のいずれかになります。

results

表示するサブオブジェクトの参照配列です。インデックスの基数は 1 です。通常これは、ジオメトリ チェッカー MAXScript 関数によって作成された結果配列です。

   

<void>xViewChecker.runCheck <time>time 

現在時刻で、xView チェックを実行します。チェックを実行して表示を更新する際に使用します。

   

これらのメソッドの実践的な使用例については、以下のチュートリアルを参照してください。

チュートリアル - 面領域 xView チェッカーの開発 - 第 1 部

チュートリアル - 面領域 xView チェッカーの開発 - 第 2 部

チュートリアル - 面領域 xView チェッカーの開発 - 第 3 部

チュートリアル - 面領域 xView チェッカーの開発 - 第 4 部

関連事項