次の方法で共有


XMFLOAT3SE 構造体 (directxpackedvector.h)

それぞれ同じ 5 ビット指数を共有する 9 ビット仮数を持つ 3 つの浮動小数点コンポーネントの 3D ベクトルについて説明します。

C++ でのプログラミング時に使用 XMFLOAT3SE できるコンストラクターや演算子などの追加機能の一覧については、「 XMFLOAT3SE拡張機能」を参照してください。

構文

struct XMFLOAT3SE {
  union {
    struct {
      uint32_t xm : 9;
      uint32_t ym : 9;
      uint32_t zm : 9;
      uint32_t e : 5;
    };
      uint32_t v;
  };
  void         XMFLOAT3SE();
  void         XMFLOAT3SE(
    const XMFLOAT3SE & unnamedParam1
  );
  XMFLOAT3SE & operator=(
    const XMFLOAT3SE & unnamedParam1
  );
  void         XMFLOAT3SE(
    XMFLOAT3SE && unnamedParam1
  );
  XMFLOAT3SE & operator=(
    XMFLOAT3SE && unnamedParam1
  );
  void         XMFLOAT3SE(
    uint32_t Packed
  ) noexcept;
  void         XMFLOAT3SE(
    float _x,
    float _y,
    float _z
  ) noexcept;
  void         XMFLOAT3SE(
    const float *pArray
  ) noexcept;
  void         operator uint32_t() noexcept;
  XMFLOAT3SE & operator=(
    uint32_t Packed
  ) noexcept;
};

メンバー

9 xm

9 ビット x コンポーネント。

9 ym

9 ビット y コンポーネント。

9 zm

9 ビット z コンポーネント。

5 e

5 ビット共有指数。

v

3D ベクターを表す符号なし 32 ビット整数。

void XMFLOAT3SE()

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

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

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

void XMFLOAT3SE( const XMFLOAT3SE & unnamedParam1)

XMFLOAT3SEコンストラクター。

XMFLOAT3SEのコンストラクター。

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

XMFLOAT3SE & operator=( const XMFLOAT3SE & unnamedParam1)

void XMFLOAT3SE( XMFLOAT3SE && unnamedParam1)

XMFLOAT3SEコンストラクター。

XMFLOAT3SEのコンストラクター。

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

XMFLOAT3SE & operator=( XMFLOAT3SE && unnamedParam1)

void XMFLOAT3SE( uint32_t Packed) noexcept

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

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

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

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

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

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

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

void XMFLOAT3SE( const float *pArray) noexcept

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

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

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

void 演算子 uint32_t() noexcept

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

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

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

XMFLOAT3SE & operator=( uint32_t Packed) noexcept

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

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

注釈

のインスタンスXMFLOAT3SEの 3 つのコンポーネントの値は、次の形式でインスタンスの v に格納されます。構造体の XMFLOAT3SEe メンバー (3 つのコンポーネントXMFLOAT3SEすべての浮動小数点値の仮数で共有される指数) は、戻り値の最上位ビットに格納され、x コンポーネントの仮数は最下位ビットに格納されます。


   (E5Z9Y9X9): [31] EEEEEzzz zzzzzzyy yyyyyyyx xxxxxxxx [0]

または、詳細に次の手順を実行します。

  • Packed のビット 0 から 8 は、x コンポーネントの浮動小数点値 (現在の構造体の xm メンバー) の 9 ビット仮です。
  • Packed のビット 9 から 17 は、y コンポーネントの浮動小数点値 (現在の構造体の ym メンバー) の 9 ビット仮です。
  • Packed のビット 18 から 26 は、z コンポーネントの浮動小数点値 (現在の構造体の zm メンバー) の 9 ビット仮です。
  • Packed のビット 27 から 31 は、格納されている仮数 (xmymzm) と共に使用される 5 ビット指数で、各コンポーネントのサイズ (現在の構造体の e メンバー) を表します。
構造体にコンポーネント XMFLOAT3SE を格納するための形式には符号ビットがないため、すべてのコンポーネント値は正です。

XMFLOAT3SEは、XMLoadFloat3SE を使用して XMVECTOR のインスタンスに読み込むことができます。

XMVECTORインスタンスは、XMStoreFloat3SE を使用して のXMFLOAT3SEインスタンスに格納できます。

名前 空間: 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 ライブラリの構造

XMFLOAT3SE拡張機能