この項は、IDirect3DRMMeshBuilder3インターフェイスのメソッドのうち、メソッド名がAからMのものをとりあげるリファレンスページである。
Direct3DRMMeshBuilder3オブジェクトに1つの面を追加する。
構文
HRESULT AddFace(
LPDIRECT3DRMFACE2 lpD3DRMFace
);
パラメータ
- lpD3DRMFace
- 追加する面へのポインタのアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
どの1つの面も、一度に1つのメッシュにしか存在できない。
Direct3DRMMeshBuilder3オブジェクトに複数の面を追加する。
構文
HRESULT AddFaces(
DWORD dwVertexCount,
D3DVECTOR *lpD3DVertices,
DWORD normalCount,
D3DVECTOR *lpNormals,
DWORD *lpFaceData,
LPDIRECT3DRMFACEARRAY *lplpD3DRMFaceArray
);
パラメータ
- dwVertexCount
- 頂点の数。
- lpD3DVertices
- 頂点位置を格納するD3DVECTOR構造体からなる配列のベースアドレス。
- normalCount
- 法線の数。
- lpNormals
- 法線の位置を格納するD3DVECTOR構造体からなる配列のベースアドレス。
- lpFaceData
- 各面に対して、このパラメータは、頂点カウントとそれに続いて頂点配列のインデックスを含む必要がある。normalCountが0でなければ、このパラメータは、頂点カウントとそれに続いてインデックスの対を含む必要がある。そのインデックスの対の最初のインデックスは、頂点配列に対するインデックスであり、2番目のインデックスは、法線の配列に対するインデックスである。インデックスのリストは、0で終了しなければならない。
- lplpD3DRMFaceArray
- IDirect3DRMFaceArrayインターフェイスへのポインタのアドレス。新しく作成された面へのポインタがセットされる。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
既存の頂点と法線 (オプション) を使用するメッシュビルダ上に、多数の面を作成できるようにする。
構文
IDirect3DRMMeshBuilder3::AddFacesIndexed( DWORD dwFlags, DWORD *lpdwvIndices, DWORD *lpdwIndexFirst, DWORD *lpdwCount);
パラメータ
- dwFlags
- 法線インデックスの処理方法を指定するフラグ値。0またはD3DRMADDFACES_VERTICESONLYのどちらかでなければならない。値が0ならば、既存の法線インデックスはlpdwvIndicesパラメータ中に指定されていなければならない。そうでない場合、対応するインデックスを持つ法線が各頂点に対して自動的に使用される。
- lpdwvIndices
- 各面に対して次のものを指定する、符号なし整数のタップルの連続する配列へのポインタ。
- 頂点の数n、ここでnは3以上
- 頂点インデックス
- 法線インデックス (オプション)
次のテーブルは、dwFlagsパラメータの値とlpdwvIndicesパラメータの必須面タップル形式との関係を示す。
dwFlags 必須面タップル形式 0 {<n>, <vIndex0>, <nIndex0>,...,<vIndexn-1>, <nIndexn-1>} D3DRMADDFACES_VERTICESONLY {<n>, <vIndex0>,...,<vIndexn-1>} vIndexとnIndexの値は、メッシュビルダ内にすでに存在している頂点と法線に索引するのに必要となる。タップルの配列は値0で終了する必要がある。
- lpdwIndexFirst
- メッシュビルダに追加された最初の新しい面のインデックスがセットされるDWORDへのオプションのポインタ。続く面には連続するインデックスが付けられる。面は、lpdwvIndicesパラメータで指定された順に追加される。
- lpdwCount
- メッシュビルダに追加された面の数がセットされるDWORDへのオプションのポインタ。
戻り値
次の値のうち1つを返す。
DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
Direct3DRMMeshBuilder3オブジェクトにフレームの内容を追加する。
構文
HRESULT AddFrame(
LPDIRECT3DRMFRAME3 lpD3DRMFrame
);
パラメータ
- lpD3DRMFrame
- その内容が追加されるフレームへのポインタのアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、指定されたフレーム階層 (より大きなフレーム階層のサブ分岐も可) からDirect3DRMMeshBuilder3オブジェクトへ、すべてのメッシュとメッシュビルダの面のコピーを追加する。フレームツリーは、ルートフレームを渡すことで指定する。面は、それらが内包する要素フレームの位置と方向によって追加される。ルートフレームに親があっても、指定されたルートフレームの変換は無視される。
ソースフレームは、この操作によって変更または参照もされない。
Direct3DRMMeshBuilder3オブジェクトにメッシュを追加する。
構文
HRESULT AddMesh(
LPDIRECT3DRMMESH lpD3DRMMesh
);
パラメータ
- lpD3DRMMesh
- 追加するメッシュへのポインタのアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトの内容を別のDirect3DRMMeshBuilder3オブジェクトに追加する。内包するDirect3DRMMeshBuilder3ソースオブジェクトと面のもとにあるすべてのサブメッシュビルダは、Direct3DRMMeshBuilder3ターゲットオブジェクトのもとで重複する。
構文
HRESULT AddMeshBuilder(
LPDIRECT3DRMMESHBUILDER3 lpD3DRMMeshBuild DWORD dwFlags); );
パラメータ
- lpD3DRMMeshBuild
- その内容を追加するDirect3DRMMeshBuilder3オブジェクトへのポインタ。
- dwFlags
次に定義するフラグの1つ。
- D3DRMADDMESHBUILDER_FLATTENSUBMESHES
- サブメッシュオブジェクトが重複しないようにする。これらの面は依然コピー可能であるが、出力先メッシュビルダのトップレベルに対してのみである。
- D3DRMADDMESHBUILDER_NOSUBMESHES
- サブメッシュビルダを無視するようにする。
- D3DRMADDMESHBUILDER_DONTCOPYAPPDATA
- AddMeshBuilder3は、ソースメッシュビルダのアプリケーションデータを出力先にコピーする。D3DRMADDMESHBUILDER_DONTCOPYAPPDATAを指定すると、これが防止される。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
ソースのDirect3DRMMeshBuilder3オブジェクトは、この操作で変更または参照もされない。
Direct3DRMMeshBuilder3オブジェクトに法線を追加する。
構文
int AddNormal(
D3DVALUE x,
D3DVALUE y,
D3DVALUE z
);
パラメータ
- x, y, z
- 新しい法線の方向のx、y、zの各要素。
戻り値
法線のインデックスを返す。
アプリケーションが新しい三角形 (一般的なポリゴンと対立的な意味で) をIDirect3DRMMeshBuilder3オブジェクトに追加し、処理中に暗黙に新しい面を作成できるようにする。このメソッドは、三角形を記述するアプリケーションに柔軟性を提供する。三角形は頂点のセットにより記述できる。各頂点は位置を持たなければならないが、オプションで、法線、テクスチャ座標または色のうちどれかを持つか、まったく持たなくてもよい。また、頂点には、この新しい頂点がリスト、細片、または扇を記述するかどうかを示すタイプを持つ。また、このフラグは、該当する三角形を以前の三角形の面に追加するかどうか、または新しい面を作成するかどうかも示す。
構文
HRESULT AddTriangles( DWORD dwFlags, DWORD dwFormat, DWORD dwVertexCount, LPVOID lpData);
パラメータ
- dwFlags
- 0でなければならない。
- dwFormat
- 頂点データのフォーマットを記述する値の論理的な組み合わせ。すべての有効な値が含まれている場合、頂点データは次のElement構造体によって記述できる。
struct Element { DWORD dwType; D3DVECTOR dvPosition; D3DVECTOR dvNormal; D3DCOLOR dcColor; D3DVALUE tu; D3DVALUE tv; };有効な値としては、次の値の任意の組み合わせが可能であり、これらはElement構造体のどのメンバを各要素の記述に含めるかを示す。dvPositionメンバは常に存在する。
- D3DRMFVF_TYPE
- dwType構造体メンバを含める。dwType構造体メンバが存在する場合、その中には次のどれか1つがなければならない。
- D3DRMVERTEX_LIST
- 新しいリストを開始するか、あるいは以前に開始したリストのメンバである。以前の頂点 (またはその前の頂点) にこのフラグのマークが付いていない場合、最低1つの三角形が形成されるまで、次の頂点にこのフラグのマークが付いていなければならない。
- D3DRMVERTEX_STRIP
- 以前の2つの頂点を持つ新しい三角形を細片フォーマットで形成する。
- D3DRMVERTEX_FAN
- 以前の頂点と扇の最初の頂点を持つ新しい三角形を形成する。
- D3DRMFVF_NORMAL
- dvNormal構造体メンバを含める。
- D3DRMFVF_COLOR
- dcColor構造体メンバを含める。
- D3DRMFVF_TEXTURECOORDS
- tuとtv構造体メンバを含める。
- dwVertexCount
- 頂点の数。
- lpvData
- dwFormatで記述されるデータへのポインタ。
戻り値
次の値のうち1つを返す。
DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
次の例は、図中の各頂点に対して適切なdwTypeフラグを示す。
頂点数 dwTypeフラグ 0 D3DRMVERTEX_STRIP 1 D3DRMVERTEX_STRIP 2 D3DRMVERTEX_STRIP 3 D3DRMVERTEX_STRIP 4 D3DRMVERTEX_STRIP 5 D3DRMVERTEX_FAN 6 D3DRMVERTEX_FAN 7 D3DRMVERTEX_FAN 8 D3DRMVERTEX_FAN 9 D3DRMVERTEX_LIST 10 D3DRMVERTEX_LIST 11 D3DRMVERTEX_LIST 12 D3DRMVERTEX_LIST 13 D3DRMVERTEX_LIST 14 D3DRMVERTEX_LIST
Direct3DRMMeshBuilder3オブジェクトに頂点を追加する。
構文
int AddVertex(
D3DVALUE x,
D3DVALUE y,
D3DVALUE z
);
パラメータ
- x, y, z
- 新しい頂点の位置のx、y、zの各要素。
戻り値
頂点のインデックスを返す。
頂点の新しい面を作成し、Direct3DRMMeshBuilder3オブジェクトに追加する。
構文
HRESULT CreateFace(
LPDIRECT3DRMFACE2 *lplpD3DRMFace2
);
パラメータ
- lplpD3DRMFace2
- IDirect3DRMFace2インターフェイスへのポインタのアドレス。作成された面へのポインタがセットされる。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトから新しいメッシュを作成する。
構文
HRESULT CreateMesh(
LPDIRECT3DRMMESH *lplpD3DRMMesh
);
パラメータ
- lplpD3DRMMesh
- <IDirect3DRMMeshインターフェイスへのポインタがセットされるアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
現在のDirect3DRMMeshBuilder3オブジェクトに対して、新しいサブメッシュを作成する。サブメッシュは、IDirect3DRMMeshBuilder3インターフェイスをサポートし、それ自体もサブメッシュを持てるという点で、メッシュビルダオブジェクトに類似している。サブメッシュとメッシュビルダの相違は、すべてのサブメッシュが頂点と法線を、サブメッシュの連鎖中の大元の祖先と共有することである。メッシュビルダは頂点と法線を共有しない。
構文
HRESULT CreateSubMesh( LPUNKNOWN *lplpUnk);
パラメータ
- lplpUnk
- 新しいサブメッシュのIUnknownインターフェイスへのポインタを受け取るアドレス。IUnknownインターフェイス上のQueryInterfaceを使用して、IDirect3DRMMeshBuilder3サポートの照会を行うことができる。
戻り値
次の値のうち1つを返す。
DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
参照
IDirect3DRMMeshBuilder3オブジェクトの面を削除する。
構文
HRESULT DeleteFace (LPDIRECT3DRMFACE2 lpFace);
パラメータ
- lpFace
- Direct3DRMMeshBuilder3オブジェクトから削除するDirect3DRMFace2オブジェクトのインターフェイスへのポインタ。
戻り値
次の値のうち1つを返す。
DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
法線の内包範囲を削除する。面がどれかの法線を現在使用中であれば、エラーが返されるので、注意すること。
構文
HRESULT DeleteNormals (DWORD dwFirstIndex, DWORD dwCount);
パラメータ
- dwFirstIndex
- 削除する最初の法線のインデックス。
- dwCount
- 削除する頂点のカウント。
戻り値
次の値のうち1つを返す。
D3DRMERR_ENTRYINUSE D3DRMERR_OUTOFRANGE DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
サブメッシュを削除する。サブメッシュは、現在のDirect3DRMMeshBuilder3オブジェクトのすぐ下の子でなければならない。
構文
HRESULT DeleteSubMesh( LPUNKNOWN lplpUnk);
パラメータ
- lplpUnk
- 削除するサブメッシュのIUnknownインターフェイスへのポインタ。
戻り値
次の値のうち1つを返す。
DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
参照
頂点の内包範囲を削除する。面がどれかの頂点を現在使用中であれば、エラーが返されるので、注意すること。
構文
HRESULT DeleteVertices (DWORD dwFirstIndex, DWORD dwCount);
パラメータ
- dwFirstIndex
- 削除する最初の頂点のインデックス。
- dwCount
- 削除する頂点のカウント。
戻り値
次の値のうち1つを返す。
D3DRMERR_ENTRYINUSE D3DRMERR_OUTOFRANGE DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
Direct3DRMMeshBuilder3オブジェクトから、すべての面、頂点、法線を削除する。
構文
HRESULT Empty (DWORD dwFlags);
パラメータ
- dwFlags
- フラグ。0でなければならない。
戻り値
次の値のうち1つを返す。
D3DRMERR_OUTOFRANGE DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
このDirect3DRMMeshBuilder3オブジェクトを、レンダリングとピッキング用に有効にするか無効にするかを指定する。
構文
HRESULT Enable( DWORD dwFlags);
パラメータ
- dwFlags
現在定義されているフラグは、次の通りである。
- D3DRMADDMESHBUILDER_RENDERENABLE
- このDirect3DRMMeshBuilder3オブジェクト上ではレンダリングが有効になっている。この設定はデフォルトである。
- D3DRMADDMESHBUILDER_PICKENABLE
- このDirect3DRMMeshBuilder3オブジェクト上では、ピッキングが有効になっている。この設定はデフォルトである。
戻り値
次の値のうち1つを返す。
DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
参照
Direct3DRMMeshBuilder3オブジェクトを処理し、頂点を共有する各面に対する面法線を平均化することによって、メッシュ中の各頂点に対して法線を生成する。新しい法線は、頂点を共有する面が、面同士の角度が折れ目の角度より大きい場合に生成される。
構文
HRESULT GenerateNormals(
D3DVALUE dvCreaseAngle,
DWORD dwFlags
);
パラメータ
- dvCreaseAngle
- ラジアン単位の、新しい法線を生成できる面同士の最小可能角度。
- dwFlags
- 以下の値の1つ。
- D3DRMGENERATENORMALS_PRECOMPACT (dwFlags = 1)
- 法線の生成前に、アルゴリズムは、メッシュの頂点をコンパクトにするべきかを指定するようになっている。下の「注意」を参照すること。
- D3DRMGENERATENORMALS_USECREASEANGLE (dwFlags = 2)
- dvCreaseAngleパラメータを使用することを指定する。指定しないと、折り目角は無視される。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、IDirect3DRMMeshBuilder2::GenerateNormals2を置換する。D3DRMGENERATENORMALS_PRECOMPACTフラグを指定すると、プリコンパクトパスは、メッシュ中のすべての頂点を検索し、同じ頂点をすべてマージする。これは、ロードされているメッシュをコンパクトにするのに賢明な方法である。メッシュの中には、頂点に複数の法線を持つ場合に、複数の頂点を持つものがある。これは、Direct3D保持モードでは必要とならない。このフラグの指定は、複数の頂点を除去する場合の定番的方法である。
コンパクト処理の後、法線が生成される。面同士の間の辺が調べられ、面が辺でなす角度が、折り目角より小さい場合には、面法線は平均化され、頂点法線が生成される。角度が折り目角より大きい場合には、新しい法線が生成される。新しい頂点は、生成されないことに注意する。
Direct3DRMMeshBuilder3オブジェクトを含む境界ボックスを取得する。境界ボックスは、各次元での最小、最大のモデル座標を与える。
構文
HRESULT GetBox(
D3DRMBOX *lpD3DRMBox
);
パラメータ
- lpD3DRMBox
- 境界ボックスの座標がセットされるD3DRMBOX構造体のアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトの色ソースを取得する。色ソースは、面でも頂点でも良い。
構文
D3DRMCOLORSOURCE GetColorSource( );
戻り値
D3DRMCOLORSOURCE列挙型のメンバを返す。
参照
このDirect3DRMMeshBuilder3オブジェクトを有効にするか無効にするかを示す値を取得する。
構文
HRESULT GetEnable( LPDWORD lpdwFlags);
パラメータ
- lpdwFlags
- このDirect3DRMMeshBuilder3オブジェクトの現在の有効状態を示すフラグを受け取るポインタ。現在定義されているフラグは、次の通りである。
- D3DRMADDMESHBUILDER_PICKENABLE
- このDirect3DRMMeshBuilder3オブジェクト上では、ピッキングが有効になっている。このフラグはデフォルトでセットされる。
- D3DRMADDMESHBUILDER_RENDERENABLE
- このDirect3DRMMeshBuilder3オブジェクト上では、レンダリングが有効になっている。このフラグはデフォルトでセットされる。
戻り値
次の値のうち1つを返す。
DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
参照
Direct3DRMMeshBuilder3オブジェクトの単一面を取得する。
構文
HRESULT GetFace(
DWORD dwIndex,
LPDIRECT3DRMFACE2 *lplpD3DRMFace2
);
パラメータ
- dwIndex
- 取得するメッシュ面のインデックス。この面はDirect3DRMMeshBuilder3オブジェクトの一部になっていなければならない。
- lplpD3DRMFace2
- IDirect3DRMFace2インターフェイスへのポインタのアドレス。面のアドレスがセットされる。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトの面の数を取得する。
構文
int GetFaceCount( );
戻り値
面の数を返す。
Direct3DRMMeshBuilder3オブジェクトの面を取得する。
構文
HRESULT GetFaces(
LPDIRECT3DRMFACEARRAY *lplpD3DRMFaceArray
);
パラメータ
- lplpD3DRMFaceArray
- IDirect3DRMFaceArrayインターフェイスへのポインタのアドレス。面のアドレスがセットされる。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
Direct3DRMMeshBuilder3オブジェクトの頂点、法線、面データを取得する。
構文
HRESULT GetGeometry(
DWORD *vcount,
D3DVECTOR *vertices,
DWORD *ncount,
D3DVECTOR *normals,
DWORD *face_data_size,
DWORD *face_data
);
パラメータ
- vcount
- 頂点の数が入っている変数のアドレス。
- vertices
- Direct3DRMMeshBuilder3オブジェクトの頂点を含むD3DVECTOR構造体の配列のアドレス。このパラメータがNULLならば、このメソッドはvcountパラメータ中に頂点の数を返す。
- ncount
- 法線の数が入っている変数のアドレス。
- normals
- Direct3DRMMeshBuilder3オブジェクトの法線を含むD3DVECTOR構造体の配列のアドレス。このパラメータがNULLならば、このメソッドはncountパラメータ中に法線の数を返す。
- face_data_size
- パラメータがポイントするバッファのサイズを指定する変数のアドレス。サイズはDWORD値の単位で与えられる。このパラメータはNULLにセットできない。
- face_data
- Direct3DRMMeshBuilder3オブジェクトの面データのアドレス。このデータは、NULLで終わる点を除いて、IDirect3DRMMeshBuilder3::AddFacesメソッドで指定されたフォーマットと同じである。このパラメータがNULLならば、このメソッドはface_data_sizeパラメータ中に面データバッファの必要サイズの数を返す。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
このメソッドは、DirectX version 6.0とともに導入された。IDirect3DRMMeshBuilderとIDirect3DRMMeshBuilder2インターフェイスは、GetVerticesメソッドを介してこの機能を提供する。旧のメソッドの名前はGetGeometryに変更になるとともに、IDirect3DRMMeshBuilder3インターフェイスではこのメソッドで行うことを記述し、新しいGetVerticesメソッドとの衝突を避けることができる。
法線ベクトルを取得する。
構文
HRESULT GetNormal (DWORD dwIndex, LPD3DVECTOR lpVector);
パラメータ
- dwIndex
- 返す法線のインデックス。
- lpVector
- 法線のx、y、z座標がセットされるD3DVECTOR構造体へのポインタ。
戻り値
次の値のうち1つを返す。
D3DRMERR_OUTOFRANGE DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
Direct3DRMMeshBuilder3オブジェクト中の法線の数を返す。
構文
DWORD GetNormalCount(void);
戻り値
次の値のうち1つを返す。
DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
参照
Direct3DRMMeshBuilder3オブジェクト中で以前に定義した法線の配列を取得する。
構文
HRESULT GetNormals( DWORD dwFirst, LPDWORD lpdwCount, LPD3DVECTOR lpdvVector);
パラメータ
- dwFirst
- 返される最初の法線のインデックス。
- lpdwCount
- 返される予定の法線数を含むDWORDへのポインタ。lpdvVectorがNULLならば、このパラメータはdwFirstで与えられるインデックスを起点にした使用可能な法線数を受け取る。lpdvVectorがNULLでない場合、このパラメータには実際に取り出された法線数が入る。dwFirstから始まるすべての使用可能な法線を確実に受け取るには、lpdvVectorをNULLにセットしてこのメソッドを呼び出す。次に、lpdwCount 中に返された値を使用して、lpdvVector中の配列のサイズを計り、再度このメソッドを呼び出す。
- lpdvVector
- 法線データを受け取るベクトルの配列へのポインタ。
戻り値
次の値のうち1つを返す。
D3DRMERR_OUTOFRANGE DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
参照
このDirect3DRMMeshBuilder3オブジェクトの親メッシュを取得する。現在のメッシュがサブメッシュでなければ、このメソッドは自分のIUnknownインターフェイスへのポインタを取得する。
構文
HRESULT GetParentMesh( DWORD dwFlags, LPUNKNOWN *lplpUnk);
パラメータ
- dwFlags
- どのDirect3DRMMeshBuilder3オブジェクトを取得するかを定義するフラグ値。現在定義されているフラグは、次の通りである。
- D3DRMMESHBUILDER_DIRECTPARENT
- このDirect3DRMMeshBuilder3オブジェクトの直接の親。
- D3DRMMESHBUILDER_ROOTMESH
- 親を持たない子のDirect3DRMMeshBuilder3オブジェクトの最終の親。
- lplpUnk
- 親のIUnknownインターフェイスを受け取るポインタのアドレス。
戻り値
次の値のうち1つを返す。
DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
参照
Direct3DRMMeshBuilder3オブジェクトに対して、パースペクティブ補正がオンであるかどうかを判別する。
構文
BOOL GetPerspective( );
戻り値
パースペクティブ補正がオンの場合はTRUE、オンでない場合はFALSEを返す。
Direct3DRMMeshBuilder3オブジェクトのレンダリングクオリティを取得する。
構文
D3DRMRENDERQUALITY GetQuality( );
戻り値
メッシュのレンダリングクオリティを指定するD3DRMRENDERQUALITY列挙型のメンバを返す。
参照
このDirect3DRMMeshBuilder3オブジェクトに含まれるサブメッシュのリストを取得する。
構文
HRESULT GetSubMeshes( LPDWCOUNT lpdwCount, LPUNKNOWN lpUnk);
パラメータ
戻り値
次の値のうち1つを返す。
D3DRMERR_OUTOFRANGE DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
参照
Direct3DRMMeshBuilder3オブジェクトの指定されている頂点のテクスチャ座標を取得する。
構文
HRESULT GetTextureCoordinates(
DWORD index,
D3DVALUE *lpU,
D3DVALUE *lpV
);
パラメータ
- index
- 頂点のインデックス。
- lpU, lpV
- メソッドが戻ったとき、頂点のテクスチャ座標がセットされる変数のアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
参照
頂点ベクトルを取得する。
構文
HRESULT GetVertex (DWORD dwIndex, LPD3DVECTOR lpVector);
パラメータ
- dwIndex
- 返す頂点のインデックス。
- lpVector
- 頂点のx、y、z座標がセットされるD3DVECTOR構造体へのポインタ。
戻り値
次の値のうち1つを返す。
D3DRMERR_OUTOFRANGE DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入された。
Direct3DRMMeshBuilder3オブジェクトの指定されている頂点の色を返す。
構文
D3DCOLOR GetVertexColor(
DWORD index
);
パラメータ
- index
- 頂点のインデックス。
戻り値
色を返す。
参照
Direct3DRMMeshBuilder3オブジェクト中の頂点の数を取得する。
構文
int GetVertexCount( );
戻り値
頂点の数を返す。
Direct3DRMMeshBuilder3オブジェクトに対する頂点、法線、面データを取得する。
構文
HRESULT GetVertices( DWORD dwFirst, LPDWORD lpdwCount, LPD3DVECTOR lpdvVector);
パラメータ
- dwFirst
- 返される最初の頂点のインデックス。
- lpdwCount
- 返される予定のベクトル数を含むDWORD値へのポインタ。lpdvVectorがNULLならば、DWORD値は所定のオフセットから使用可能な頂点数を受け取る。そうでない場合、DWORD値は実際に取り出されたベクトル数を受け取る。
- lpdvVector
- 頂点データで初期化されるベクトルの配列へのポインタ。
戻り値
次の値のうち1つを返す。
D3DRMERR_OUTOFRANGE DDERR_INVALIDOBJECT DDERR_INVALIDPARAMS DD_OK
注意
このメソッドは、DirectX version 6.0とともに導入され、旧のIDirect3DRMMeshBuilderとIDirect3DRMMeshBuilder2インターフェイスが提供したGetVerticesメソッドとは異なる。IDirect3DRMMeshBuilder3については、旧のメソッドの名前はその機能をよりよく表すGetGeometryに変更された。
参照
Direct3DRMMeshBuilder3オブジェクトをロードする。
構文
HRESULT Load(
LPVOID lpvObjSource,
LPVOID lpvObjID,
D3DRMLOADOPTIONS d3drmLOFlags,
D3DRMLOADTEXTURE3CALLBACK d3drmLoadTextureProc,
LPVOID lpvArg
);
パラメータ
- lpvObjSource
- ロードするオブジェクトのソース。d3drmLOFlagsパラメータで指定されているソースフラグによって、このソースはファイル、リソース、メモリブロック、またはストリームにできる。
- lpvObjID
- ロードするオブジェクトの名前または位置。このパラメータの使用は、d3drmLOFlagsパラメータで指定されている識別フラグに依存する。D3DRMLOAD_BYPOSITIONフラグが指定されていれば、このパラメータは、ファイル中のオブジェクトの順を与えるDWORD値へのポインタとなる。このパラメータはNULLにできる。
- d3drmLOFlags
- ロードオプションを記述するD3DRMLOADOPTIONS型の値。
- d3drmLoadTextureProc
- D3DRMLOADTEXTURE3CALLBACKコールバック関数。特殊なフォーマッティングを必要とするオブジェクトによって使用される、任意のテクスチャをロードするために使われる。このパラメータはNULLにできる。
- lpvArg
- D3DRMLOADTEXTURE3CALLBACKコールバック関数に渡されるアプリケーション定義データのアドレス。
戻り値
成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。
注意
デフォルトでは、このメソッドはlpvObjSourceパラメータで指定されているソースから最初のメッシュをロードする。
このメソッドは、IDirect3DRM3::SetOptionsがセットする右手と左手ジオメトリオプションを考慮する。
そのロードメソッドを複数回を呼び出すことで、複数のオブジェクトをロードすることができる。
トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.