Microsoft DirectX 8.0 (C++)

D3DXBoxBoundProbe

レイがボックスの境界ボックスのボリュームに当たるかどうかを判定する。

BOOL D3DXBoxBoundProbe(
  CONST D3DXVECTOR3* pMin,
  CONST D3DXVECTOR3* pMax,
  D3DXVECTOR3* pRayPosition,
  D3DXVECTOR3* pRayDirection
);

パラメータ

pMin
[out] 境界ボックスの左下隅を記述する、D3DXVECTOR3 構造体へのポインタ。「注意」を参照すること。
pMax
[out] 境界ボックスの右上隅を記述する、D3DXVECTOR3 構造体へのポインタ。「注意」を参照すること。
pRayPosition
[in] レイの始点座標を指定する D3DXVECTOR3 構造体へのポインタ。
pRayDirection
[in] レイの方向を指定する D3DXVECTOR3 構造体へのポインタ。

戻り値

レイがボックスの境界ボックスのボリュームに当たる場合は、TRUE を返す。それ以外の場合は、FALSE を返す。

注意

D3DXBoxBoundProbe は、レイがボックスのサーフェスだけではなく、ボックスの境界ボックスのボリュームに当たるかどうかを判定する。

D3DXBoxBoundProbe に渡される D3DXVECTOR3 の値は、xmin、xmax、ymin、ymax、zmin、zmax である。したがって、境界ボックスの角の定義は次のようになる。

xmax, ymax, zmax
xmax, ymax, zmin
xmax, ymin, zmax
xmax, ymin, zmin
xmin, ymax, zmax
xmin, ymax, zmin
xmin, ymin, zmax
xmin, ymin, zmin

境界ボックスの深度は、z 方向が zmax - zmin、y 方向が ymax - ymin、そして x 方向が xmax - xmin である。たとえば、最小ベクトルが min (-1, -1, -1)、最大ベクトルが (1, 1, 1) の場合、境界ボックスの定義は次のようになる。

 1,  1,  1
 1,  1, -1
 1, -1,  1
 1, -1, -1
-1,  1,  1
-1,  1, -1
-1, -1,  1
-1, -1, -1

動作環境

  ヘッダー : D3dx8mesh.h で宣言。
  インポート ライブラリ : D3dx8.lib を使用。

参照

D3DXComputeBoundingBox