XMStoreFloat3SE
XMVECTOR を XMFLOAT3SE に格納します。
構文
VOID XMStoreFloat3SE( XMFLOAT3SE *pDestination, XMVECTOR V)
パラメーター
- pDestination
[out] データを格納するアドレス。 - V
[in] 格納するデータが含まれるベクトル
戻り値
なし。
解説
次の擬似コードは、この関数の処理を表したものです。
XMVECTOR N; static CONST XMVECTOR Max = { 65472.f, 65427.f, 65427.f, 0 }; N = XMVectorClamp(V, XMVectorZero(), Max); UINT m[3], e[3]; ConvertToFloat14( N.x, &m[0], &e[0]); ConvertToFloat14( N.y, &m[1], &e[1]); ConvertToFloat14( N.z, &m[2], &e[2]); UINT T = XMMax( e[0], XMMax( e[1], e[2] ) ); pDestination->xm = m[0] >> (T - e[0]); PDestination->ym = m[1] >> (T - e[1]); pDestination->zm = m[2] >> (T - e[2]); pDestination->e = T;
これらの 3 つの要素の大きさが互いにかけ離れている場合は、そのうち最大の値が指数に設定されて、他の要素は 0 にシフトされます。
要件
ヘッダー: xnamath.h で宣言されています。