XMFLOAT3PK 構造体 (directxpackedvector.h)
X および Y コンポーネントが 11 ビット浮動小数点数として格納され、Z コンポーネントが 10 ビット浮動小数点値として格納されている 3D ベクターについて説明します。
C++ でのプログラミング時に使用 XMFLOAT3PK
できるコンストラクターや演算子などの追加機能の一覧については、「 XMFLOAT3PK拡張機能」を参照してください。
構文
struct XMFLOAT3PK {
union {
struct {
uint32_t xm : 6;
uint32_t xe : 5;
uint32_t ym : 6;
uint32_t ye : 5;
uint32_t zm : 5;
uint32_t ze : 5;
};
uint32_t v;
};
void XMFLOAT3PK();
void XMFLOAT3PK(
const XMFLOAT3PK & unnamedParam1
);
XMFLOAT3PK & operator=(
const XMFLOAT3PK & unnamedParam1
);
void XMFLOAT3PK(
XMFLOAT3PK && unnamedParam1
);
XMFLOAT3PK & operator=(
XMFLOAT3PK && unnamedParam1
);
void XMFLOAT3PK(
uint32_t Packed
) noexcept;
void XMFLOAT3PK(
float _x,
float _y,
float _z
) noexcept;
void XMFLOAT3PK(
const float *pArray
) noexcept;
void operator uint32_t() noexcept;
XMFLOAT3PK & operator=(
uint32_t Packed
) noexcept;
};
メンバー
6 xm
x コンポーネントの 6 ビット仮数。
5 xe
x 成分の 5 ビットバイアス指数。
6 ym
y コンポーネントの 6 ビット仮数。
5 ye
y 成分の 5 ビットバイアス指数。
5 zm
z コンポーネントの 5 ビット仮数。
5 ze
z 成分の 5 ビットバイアス指数。
v
3D ベクターを表す符号なし 32 ビット整数。
の既定の XMFLOAT3PK
コンストラクター。
XMFLOAT3PKの既定のコンストラクター。
void XMFLOAT3PK( const XMFLOAT3PK & unnamedParam1)
の XMFLOAT3PK
コンストラクター。
XMFLOAT3PKのコンストラクター。
XMFLOAT3PK & operator=( const XMFLOAT3PK & unnamedParam1)
void XMFLOAT3PK( XMFLOAT3PK && unnamedParam1)
の 1 つのインスタンスから の現在XMFLOAT3SE
のXMFLOAT3SE
インスタンスにベクター コンポーネント データを割り当てます。
この演算子は、 の 1 つのインスタンスのベクター コンポーネント データ XMFLOAT3SE の現在の XMFLOAT3SE
インスタンスに割り当てます。
XMFLOAT3PK & operator=( XMFLOAT3PK && unnamedParam1)
の 1 つのインスタンスから の現在XMFLOAT3PK
のXMFLOAT3PK
インスタンスにベクター コンポーネント データを割り当てます。
この演算子は、 の 1 つのインスタンスのベクター コンポーネント データ XMFLOAT3PK の現在の XMFLOAT3PK
インスタンスに割り当てます。
void XMFLOAT3PK( uint32_t Packed) noexcept
パック形式のコンポーネント データをuint32_t
含む変数から、 のXMFLOAT3PK
新しいインスタンスを初期化します。
このコンストラクターは、パック形式のコンポーネント データを含む変数からuint32_t
、XMFLOAT3PKの新しいインスタンスを初期化します。
void XMFLOAT3PK( float _x, float _y, float _z) noexcept
の新しいインスタンス XMFLOAT3PK
を 3 つの float
引数から初期化します。
このコンストラクターは、3 つのfloat
引数から XMFLOAT3PK の新しいインスタンスを初期化します。
void XMFLOAT3PK( const float *pArray) noexcept
3 つの要素float
配列引数から XMFLOAT3PK の新しいインスタンスを初期化します。
このコンストラクターは、3 つの要素float
配列引数から XMFLOAT3PK の新しいインスタンスを初期化します。
インスタンスの uint32_t
コンポーネントをパック形式で格納している の XMFLOAT3PK
インスタンスを返します。
この演算子は、パック形式でuint32_t
XMFLOAT3PK インスタンスのコンポーネントを含む のインスタンスを返します。
XMFLOAT3PK & operator=( uint32_t Packed) noexcept
この演算子は、 のインスタンス uint32_t
にパックされたベクター コンポーネント データを 、XMFLOAT3PKの現在のインスタンスに割り当てます。
注釈
符号ビットはありません。 これは、すべての部分有効桁数が正であることを意味します。 z コンポーネントは最上位ビットに格納され、x コンポーネントは次のような最下位ビットに格納されます。
(Z10Y11X11): [31] ZZZZZzzz zzYYYYYy yyyyyXXX XXxxxxxx [0]
または、詳細に次の手順を実行します。
- v のビット 0 から 5 は、x コンポーネントの浮動小数点値 (構造体の xm メンバー) の 6 ビット仮数です。
- v のビット 6 から 10 は、構造体の xe メンバーである x コンポーネントの浮動小数点値の 5 ビット指数です。
- v のビット 11 から 16 は、y コンポーネントの浮動小数点値 (構造体の ym メンバー) の 6 ビット仮数です。
- v のビット 17 から 21 は、y コンポーネントの浮動小数点値の 5 ビット指数 (構造体の ye メンバー) です。
- v のビット 22 から 26 は、z コンポーネントの浮動小数点値 (構造体の zm メンバー) の 5 ビット仮数です。
- v のビット 27 から 31 は、z コンポーネントの浮動小数点値 (構造体の ze メンバー) の 5 ビット指数です。
XMFLOAT3PK
は、XMLoadFloat3PK を使用して XMVECTOR のインスタンスに読み込むことができます。
のXMVECTOR
インスタンスは、XMStoreFloat3PK を使用して のXMFLOAT3PK
インスタンスに格納できます。
MIN_F10 / MIN_F11 = 6.10352e-5
MAX_F10 = 64512
MAX_F11 = 65024
名前 空間: DirectX::P ackedVector を使用する
プラットフォームの要件
Microsoft Visual Studio 2010 または Microsoft Visual Studio 2012 と Windows SDK for Windows 8。 Win32 デスクトップ アプリ、Windows ストア アプリ、Windows Phone 8 アプリでサポートされます。要件
Header | directxpackedvector.h |