ピックオブジェクトをグループ化し、より多くの情報を返すには、アプリケーションは、IDirect3DRMPicked2Arrayインターフェイスのメソッドを利用する。ピックの詳細については、「IDirect3DRMPickedArray」を参照すること。
IDirect3DRMFrame3::RayPickメソッドを使用して、IDirect3DRMPicked2Arrayインターフェイスを取得する。次に、IDirect3DRMPicked2Array::GetPickメソッドを呼び出して、IDirect3DRMFrameArrayインターフェイス、ビジュアルオブジェクト、および光線が交差するオブジェクトに関する情報を取得することができる。この情報には、面とグループの識別子、ピック位置、およびオブジェクトの頂点、頂点法線、色に対する水平と垂直テクスチャ座標が含まれる。フレームの配列は、ビジュアルオブジェクトに通じる階層へのパスである。
IDirect3DRMPicked2Array::GetPickによって返されるD3DRMPICKDESC2構造体には、面やグループの識別子、ピックの位置、頂点の水平および垂直テクスチャ座標、頂点の法線および交差したオブジェクトの色が含まれている。このインターフェイスポインタへのポインタは、光線のピック中にIDirect3DRMFrame3::RayPickメソッドで返される。
IDirect3DRMPicked2Arrayインターフェイスは、次のメソッドをサポートする。
GetPick |
GetSize |
すべてのCOMインターフェイスと同様、IDirect3DRMPicked2ArrayインターフェイスはIUnknownインターフェイスメソッドを継承する。IUnknownインターフェイスは、以下の3つのメソッドをサポートする。
AddRef |
QueryInterface |
Release |
Direct3DRMPicked2Arrayオブジェクトは、IDirect3DRMFrame3::RayPickメソッドの呼び出しによって取得される。
指定されたピックによって交差するDirect3DRMVisualとDirect3DRMFrameオブジェクトを取得する。
構文
HRESULT GetPick(
DWORD index,
LPDIRECT3DRMVISUAL *lplpVisual,
LPDIRECT3DRMFRAMEARRAY *lplpFrameArray,
LPD3DRMPICKDESC2 lpD3DRMPickDesc2
);
パラメータ
- index
- 情報を取得するピックを識別する、ピック配列へのインデックス。
- lplpVisual
- 指定されたピックに関連付けられたDirect3DRMVisualオブジェクトのポインタのアドレス。
- lplpFrameArray
- 指定されたピックに関連付けられたDirect3DRMFrameArrayオブジェクトのポインタのアドレス。
- lpD3DRMPickDesc
- 面やグループの識別子、ピックの位置、頂点の水平および垂直テクスチャ座標、頂点の法線および交差したオブジェクトの色が指定するD3DRMPICKDESC2構造体へのアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、D3DRMPICKDESC構造体ではなくD3DRMPICKDESC2構造体中のu値とv値を取得する点を除けば、IDirect3DRMPickedArray::GetPickと類似している。
参照
Direct3DRMPicked2Arrayオブジェクトに含まれている要素数を取得する。
構文
DWORD GetSize( );
戻り値
要素数を返す。
トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.