次の方法で共有


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 ビット整数。

void XMFLOAT3PK()

の既定の XMFLOAT3PKコンストラクター。

XMFLOAT3PKの既定のコンストラクター。

メモ このコンストラクターは、C++ でのみ使用できます。
 

void XMFLOAT3PK( const XMFLOAT3PK & unnamedParam1)

XMFLOAT3PKコンストラクター。

XMFLOAT3PKのコンストラクター。

メモ このコンストラクターは、C++ でのみ使用できます。

XMFLOAT3PK & operator=( const XMFLOAT3PK & unnamedParam1)

void XMFLOAT3PK( XMFLOAT3PK && unnamedParam1)

の 1 つのインスタンスから の現在XMFLOAT3SEXMFLOAT3SEインスタンスにベクター コンポーネント データを割り当てます。

この演算子は、 の 1 つのインスタンスのベクター コンポーネント データ XMFLOAT3SE の現在の XMFLOAT3SEインスタンスに割り当てます。

メモ この演算子は C++ でのみ使用できます。

XMFLOAT3PK & operator=( XMFLOAT3PK && unnamedParam1)

の 1 つのインスタンスから の現在XMFLOAT3PKXMFLOAT3PKインスタンスにベクター コンポーネント データを割り当てます。

この演算子は、 の 1 つのインスタンスのベクター コンポーネント データ XMFLOAT3PK の現在の XMFLOAT3PKインスタンスに割り当てます。

メモ この演算子は C++ でのみ使用できます。

void XMFLOAT3PK( uint32_t Packed) noexcept

パック形式のコンポーネント データをuint32_t含む変数から、 のXMFLOAT3PK新しいインスタンスを初期化します。

このコンストラクターは、パック形式のコンポーネント データを含む変数からuint32_t、XMFLOAT3PKの新しいインスタンスを初期化します。

メモ このコンストラクターは、C++ でのみ使用できます。
 

void XMFLOAT3PK( float _x, float _y, float _z) noexcept

の新しいインスタンス XMFLOAT3PK を 3 つの float 引数から初期化します。

このコンストラクターは、3 つのfloat引数から XMFLOAT3PK の新しいインスタンスを初期化します。

メモ このコンストラクターは、C++ でのみ使用できます。
 

void XMFLOAT3PK( const float *pArray) noexcept

3 つの要素float配列引数から XMFLOAT3PK の新しいインスタンスを初期化します。

このコンストラクターは、3 つの要素float配列引数から XMFLOAT3PK の新しいインスタンスを初期化します。

メモ このコンストラクターは、C++ でのみ使用できます。

void 演算子 uint32_t() noexcept

インスタンスの uint32_t コンポーネントをパック形式で格納している の XMFLOAT3PK インスタンスを返します。

この演算子は、パック形式でuint32_tXMFLOAT3PK インスタンスのコンポーネントを含む のインスタンスを返します。

メモ この演算子は C++ でのみ使用できます。
 

XMFLOAT3PK & operator=( uint32_t Packed) noexcept

この演算子は、 のインスタンス uint32_t にパックされたベクター コンポーネント データを 、XMFLOAT3PKの現在のインスタンスに割り当てます。

メモ この演算子は C++ でのみ使用できます。
 

注釈

符号ビットはありません。 これは、すべての部分有効桁数が正であることを意味します。 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

こちらもご覧ください

DirectXMath ライブラリの構造

XMFLOAT3PK拡張機能