IDirect3DRMMeshBuilder3メソッドA〜M

この項は、IDirect3DRMMeshBuilder3インターフェイスのメソッドのうち、メソッド名がAからMのものをとりあげるリファレンスページである。

IDirect3DRMMeshBuilder3::AddFace

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクトに1つの面を追加する。

構文

HRESULT AddFace(
  LPDIRECT3DRMFACE2 lpD3DRMFace
  );

パラメータ

lpD3DRMFace
追加する面へのポインタのアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

どの1つの面も、一度に1つのメッシュにしか存在できない。

IDirect3DRMMeshBuilder3::AddFaces

IDirect3DRMMeshBuilder3

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

IDirect3DRMMeshBuilder3

既存の頂点と法線 (オプション) を使用するメッシュビルダ上に、多数の面を作成できるようにする。

構文

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とともに導入された。

IDirect3DRMMeshBuilder3::AddFrame

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクトにフレームの内容を追加する。

構文

HRESULT AddFrame(
  LPDIRECT3DRMFRAME3 lpD3DRMFrame
  );

パラメータ

lpD3DRMFrame
その内容が追加されるフレームへのポインタのアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

注意

このメソッドは、指定されたフレーム階層 (より大きなフレーム階層のサブ分岐も可) からDirect3DRMMeshBuilder3オブジェクトへ、すべてのメッシュとメッシュビルダの面のコピーを追加する。フレームツリーは、ルートフレームを渡すことで指定する。面は、それらが内包する要素フレームの位置と方向によって追加される。ルートフレームに親があっても、指定されたルートフレームの変換は無視される。

ソースフレームは、この操作によって変更または参照もされない。

IDirect3DRMMeshBuilder3::AddMesh

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクトにメッシュを追加する。

構文

HRESULT AddMesh(
  LPDIRECT3DRMMESH lpD3DRMMesh
  );

パラメータ

lpD3DRMMesh
追加するメッシュへのポインタのアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

IDirect3DRMMeshBuilder3::AddMeshBuilder

IDirect3DRMMeshBuilder3

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オブジェクトは、この操作で変更または参照もされない。

IDirect3DRMMeshBuilder3::AddNormal

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクトに法線を追加する。

構文

int AddNormal(
  D3DVALUE x,
  D3DVALUE y,
  D3DVALUE z
  );

パラメータ

x, y, z
新しい法線の方向のx、y、zの各要素。

戻り値

法線のインデックスを返す。

IDirect3DRMMeshBuilder3::AddTriangles

IDirect3DRMMeshBuilder3

アプリケーションが新しい三角形 (一般的なポリゴンと対立的な意味で) をIDirect3DRMMeshBuilder3オブジェクトに追加し、処理中に暗黙に新しい面を作成できるようにする。このメソッドは、三角形を記述するアプリケーションに柔軟性を提供する。三角形は頂点のセットにより記述できる。各頂点は位置を持たなければならないが、オプションで、法線、テクスチャ座標または色のうちどれかを持つか、まったく持たなくてもよい。また、頂点には、この新しい頂点がリスト、細片、または扇を記述するかどうかを示すタイプを持つ。また、このフラグは、該当する三角形を以前の三角形の面に追加するかどうか、または新しい面を作成するかどうかも示す。

IDirect3DRMMeshBuilder3::AddTrianglesの例

構文

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
tutv構造体メンバを含める。
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

IDirect3DRMMeshBuilder3::AddVertex

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクトに頂点を追加する。

構文

int AddVertex(
  D3DVALUE x,
  D3DVALUE y,
  D3DVALUE z
  );

パラメータ

x, y, z
新しい頂点の位置のx、y、zの各要素。

戻り値

頂点のインデックスを返す。

IDirect3DRMMeshBuilder3::CreateFace

IDirect3DRMMeshBuilder3

頂点の新しい面を作成し、Direct3DRMMeshBuilder3オブジェクトに追加する。

構文

HRESULT CreateFace(
  LPDIRECT3DRMFACE2 *lplpD3DRMFace2
  );

パラメータ

lplpD3DRMFace2
IDirect3DRMFace2インターフェイスへのポインタのアドレス。作成された面へのポインタがセットされる。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

IDirect3DRMMeshBuilder3::CreateMesh

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクトから新しいメッシュを作成する。

構文

HRESULT CreateMesh(
  LPDIRECT3DRMMESH *lplpD3DRMMesh
  );

パラメータ

lplpD3DRMMesh
<IDirect3DRMMeshインターフェイスへのポインタがセットされるアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

IDirect3DRMMeshBuilder3::CreateSubMesh

IDirect3DRMMeshBuilder3

現在のDirect3DRMMeshBuilder3オブジェクトに対して、新しいサブメッシュを作成する。サブメッシュは、IDirect3DRMMeshBuilder3インターフェイスをサポートし、それ自体もサブメッシュを持てるという点で、メッシュビルダオブジェクトに類似している。サブメッシュとメッシュビルダの相違は、すべてのサブメッシュが頂点と法線を、サブメッシュの連鎖中の大元の祖先と共有することである。メッシュビルダは頂点と法線を共有しない。

構文

HRESULT CreateSubMesh(
  LPUNKNOWN  *lplpUnk);

パラメータ

lplpUnk
新しいサブメッシュのIUnknownインターフェイスへのポインタを受け取るアドレス。IUnknownインターフェイス上のQueryInterfaceを使用して、IDirect3DRMMeshBuilder3サポートの照会を行うことができる。

戻り値

次の値のうち1つを返す。
 
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

参照

DeleteSubMesh, GetSubMeshes, GetParentMesh

IDirect3DRMMeshBuilder3::DeleteFace

IDirect3DRMMeshBuilder3

IDirect3DRMMeshBuilder3オブジェクトの面を削除する。

構文

HRESULT DeleteFace
(LPDIRECT3DRMFACE2 lpFace);

パラメータ

lpFace
Direct3DRMMeshBuilder3オブジェクトから削除するDirect3DRMFace2オブジェクトのインターフェイスへのポインタ。

戻り値

次の値のうち1つを返す。
 
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

IDirect3DRMMeshBuilder3::DeleteNormals

IDirect3DRMMeshBuilder3

法線の内包範囲を削除する。面がどれかの法線を現在使用中であれば、エラーが返されるので、注意すること。

構文

HRESULT DeleteNormals
(DWORD dwFirstIndex,
DWORD dwCount);

パラメータ

dwFirstIndex
削除する最初の法線のインデックス。
dwCount
削除する頂点のカウント。

戻り値

次の値のうち1つを返す。
 
D3DRMERR_ENTRYINUSE
D3DRMERR_OUTOFRANGE
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

IDirect3DRMMeshBuilder3::DeleteSubMesh

IDirect3DRMMeshBuilder3

サブメッシュを削除する。サブメッシュは、現在のDirect3DRMMeshBuilder3オブジェクトのすぐ下の子でなければならない。

構文

HRESULT DeleteSubMesh(
  LPUNKNOWN lplpUnk);

パラメータ

lplpUnk
削除するサブメッシュのIUnknownインターフェイスへのポインタ。

戻り値

次の値のうち1つを返す。
 
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

参照

CreateSubMesh, GetSubMeshes, GetParentMesh

IDirect3DRMMeshBuilder3::DeleteVertices

IDirect3DRMMeshBuilder3

頂点の内包範囲を削除する。面がどれかの頂点を現在使用中であれば、エラーが返されるので、注意すること。

構文

HRESULT DeleteVertices
(DWORD dwFirstIndex,
DWORD dwCount);

パラメータ

dwFirstIndex
削除する最初の頂点のインデックス。
dwCount
削除する頂点のカウント。

戻り値

次の値のうち1つを返す。
 
D3DRMERR_ENTRYINUSE
D3DRMERR_OUTOFRANGE
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

IDirect3DRMMeshBuilder3::Empty

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクトから、すべての面、頂点、法線を削除する。

構文

HRESULT Empty
(DWORD dwFlags);

パラメータ

dwFlags
フラグ。0でなければならない。

戻り値

次の値のうち1つを返す。
 
D3DRMERR_OUTOFRANGE
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

IDirect3DRMMeshBuilder3::Enable

IDirect3DRMMeshBuilder3

このDirect3DRMMeshBuilder3オブジェクトを、レンダリングとピッキング用に有効にするか無効にするかを指定する。

構文

HRESULT Enable(
  DWORD dwFlags);

パラメータ

dwFlags

現在定義されているフラグは、次の通りである。

D3DRMADDMESHBUILDER_RENDERENABLE
このDirect3DRMMeshBuilder3オブジェクト上ではレンダリングが有効になっている。この設定はデフォルトである。
D3DRMADDMESHBUILDER_PICKENABLE
このDirect3DRMMeshBuilder3オブジェクト上では、ピッキングが有効になっている。この設定はデフォルトである。

戻り値

次の値のうち1つを返す。
 
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

参照

GetEnable

IDirect3DRMMeshBuilder3::GenerateNormals

IDirect3DRMMeshBuilder3

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保持モードでは必要とならない。このフラグの指定は、複数の頂点を除去する場合の定番的方法である。

コンパクト処理の後、法線が生成される。面同士の間の辺が調べられ、面が辺でなす角度が、折り目角より小さい場合には、面法線は平均化され、頂点法線が生成される。角度が折り目角より大きい場合には、新しい法線が生成される。新しい頂点は、生成されないことに注意する。

IDirect3DRMMeshBuilder3::GetBox

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクトを含む境界ボックスを取得する。境界ボックスは、各次元での最小、最大のモデル座標を与える。

構文

HRESULT GetBox(
  D3DRMBOX *lpD3DRMBox
  );

パラメータ

lpD3DRMBox
境界ボックスの座標がセットされるD3DRMBOX構造体のアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

IDirect3DRMMeshBuilder3::GetColorSource

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクトの色ソースを取得する。色ソースは、面でも頂点でも良い。

構文

D3DRMCOLORSOURCE GetColorSource( );

戻り値

D3DRMCOLORSOURCE列挙型のメンバを返す。

参照

IDirect3DRMMeshBuilder3::SetColorSource

IDirect3DRMMeshBuilder3::GetEnable

IDirect3DRMMeshBuilder3

このDirect3DRMMeshBuilder3オブジェクトを有効にするか無効にするかを示す値を取得する。

構文

HRESULT GetEnable(
  LPDWORD lpdwFlags);

パラメータ

lpdwFlags
このDirect3DRMMeshBuilder3オブジェクトの現在の有効状態を示すフラグを受け取るポインタ。現在定義されているフラグは、次の通りである。
D3DRMADDMESHBUILDER_PICKENABLE
このDirect3DRMMeshBuilder3オブジェクト上では、ピッキングが有効になっている。このフラグはデフォルトでセットされる。
D3DRMADDMESHBUILDER_RENDERENABLE
このDirect3DRMMeshBuilder3オブジェクト上では、レンダリングが有効になっている。このフラグはデフォルトでセットされる。

戻り値

次の値のうち1つを返す。
 
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

参照

Enable

IDirect3DRMMeshBuilder3::GetFace

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクトの単一面を取得する。

構文

HRESULT GetFace(
  DWORD dwIndex,
  LPDIRECT3DRMFACE2 *lplpD3DRMFace2
  );

パラメータ

dwIndex
取得するメッシュ面のインデックス。この面はDirect3DRMMeshBuilder3オブジェクトの一部になっていなければならない。
lplpD3DRMFace2
IDirect3DRMFace2インターフェイスへのポインタのアドレス。面のアドレスがセットされる。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

IDirect3DRMMeshBuilder3::GetFaceCount

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクトの面の数を取得する。

構文

int GetFaceCount( );

戻り値

面の数を返す。

IDirect3DRMMeshBuilder3::GetFaces

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクトの面を取得する。

構文

HRESULT GetFaces(
  LPDIRECT3DRMFACEARRAY *lplpD3DRMFaceArray
  );

パラメータ

lplpD3DRMFaceArray
IDirect3DRMFaceArrayインターフェイスへのポインタのアドレス。面のアドレスがセットされる。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

IDirect3DRMMeshBuilder3::GetGeometry

IDirect3DRMMeshBuilder3

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とともに導入された。IDirect3DRMMeshBuilderIDirect3DRMMeshBuilder2インターフェイスは、GetVerticesメソッドを介してこの機能を提供する。旧のメソッドの名前はGetGeometryに変更になるとともに、IDirect3DRMMeshBuilder3インターフェイスではこのメソッドで行うことを記述し、新しいGetVerticesメソッドとの衝突を避けることができる。

IDirect3DRMMeshBuilder3::GetNormal

IDirect3DRMMeshBuilder3

法線ベクトルを取得する。

構文

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とともに導入された。

IDirect3DRMMeshBuilder3::GetNormalCount

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクト中の法線の数を返す。

構文

DWORD GetNormalCount(void);

戻り値

次の値のうち1つを返す。
 
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

参照

GetNormals, SetNormals

IDirect3DRMMeshBuilder3::GetNormals

IDirect3DRMMeshBuilder3

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とともに導入された。

参照

GetNormalCount, SetNormals

IDirect3DRMMeshBuilder3::GetParentMesh

IDirect3DRMMeshBuilder3

この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とともに導入された。

参照

GetSubMeshes

IDirect3DRMMeshBuilder3::GetPerspective

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクトに対して、パースペクティブ補正がオンであるかどうかを判別する。

構文

BOOL GetPerspective( );

戻り値

パースペクティブ補正がオンの場合はTRUE、オンでない場合はFALSEを返す。

IDirect3DRMMeshBuilder3::GetQuality

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクトのレンダリングクオリティを取得する。

構文

D3DRMRENDERQUALITY GetQuality( );

戻り値

メッシュのレンダリングクオリティを指定するD3DRMRENDERQUALITY列挙型のメンバを返す。

参照

IDirect3DRMMeshBuilder3::SetQuality

IDirect3DRMMeshBuilder3::GetSubMeshes

IDirect3DRMMeshBuilder3

このDirect3DRMMeshBuilder3オブジェクトに含まれるサブメッシュのリストを取得する。

構文

HRESULT GetSubMeshes(
  LPDWCOUNT lpdwCount,
  LPUNKNOWN lpUnk);

パラメータ

lpdwCount
返される予定のIUnknownインターフェイスポインタ数を含むDWORD値を指すポインタ。lpUnkがNULLならば、lpdwCountがポイントする値は使用可能なポインタ数を受け取る。そうでない場合は、lpdwCountがポイントする値は実際に取り出されたIUnknownポインタ数を受け取る。
lpUnk
子サブメッシュに対するIUnknownポインタの配列。

戻り値

次の値のうち1つを返す。
 
D3DRMERR_OUTOFRANGE
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DD_OK

注意

このメソッドは、DirectX version 6.0とともに導入された。

参照

GetParentMesh

IDirect3DRMMeshBuilder3::GetTextureCoordinates

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクトの指定されている頂点のテクスチャ座標を取得する。

構文

HRESULT GetTextureCoordinates(
  DWORD index,
  D3DVALUE *lpU,
  D3DVALUE *lpV
  );

パラメータ

index
頂点のインデックス。
lpU, lpV
メソッドが戻ったとき、頂点のテクスチャ座標がセットされる変数のアドレス。

戻り値

成功すればD3DRM_OK、失敗すればエラーを返す。エラーのリストについては、「Direct3D保持モードの戻り値」を参照すること。

参照

IDirect3DRMMeshBuilder3::SetTextureCoordinates

IDirect3DRMMeshBuilder3::GetVertex

IDirect3DRMMeshBuilder3

頂点ベクトルを取得する。

構文

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とともに導入された。

IDirect3DRMMeshBuilder3::GetVertexColor

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクトの指定されている頂点の色を返す。

構文

D3DCOLOR GetVertexColor(
  DWORD index
  );

パラメータ

index
頂点のインデックス。

戻り値

色を返す。

参照

IDirect3DRMMeshBuilder3::SetVertexColor

IDirect3DRMMeshBuilder3::GetVertexCount

IDirect3DRMMeshBuilder3

Direct3DRMMeshBuilder3オブジェクト中の頂点の数を取得する。

構文

int GetVertexCount( );

戻り値

頂点の数を返す。

IDirect3DRMMeshBuilder3::GetVertices

IDirect3DRMMeshBuilder3

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とともに導入され、旧のIDirect3DRMMeshBuilderIDirect3DRMMeshBuilder2インターフェイスが提供したGetVerticesメソッドとは異なる。IDirect3DRMMeshBuilder3については、旧のメソッドの名前はその機能をよりよく表すGetGeometryに変更された。

参照

SetVertices, GetGeometry

IDirect3DRMMeshBuilder3::Load

IDirect3DRMMeshBuilder3

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.