XMDECN4 structure (directxpackedvector.h)

A 4D vector for storing signed, normalized values as 10 bit signed x-,y-, and z- components and a 2 bit signed w-component.

For a list of additional functionality such as constructors and operators that are available using XMDECN4 when you are programming in C++, see XMDECN4 Extensions.

Note  See DirectXMath Library Type Equivalences for information about equivalent D3DDECLTYPE, D3DFORMAT,and DXGI_FORMAT objects.
 

Syntax

struct XMDECN4 {
  union {
    struct {
      int32_t x : 10;
      int32_t y : 10;
      int32_t z : 10;
      int32_t w : 2;
    };
             uint32_t v;
  };
  void      XMDECN4();
  void      XMDECN4(
    const XMDECN4 & unnamedParam1
  );
  XMDECN4 & operator=(
    const XMDECN4 & unnamedParam1
  );
  void      XMDECN4(
    XMDECN4 && unnamedParam1
  );
  XMDECN4 & operator=(
    XMDECN4 && unnamedParam1
  );
  void      XMDECN4(
    uint32_t Packed
  ) noexcept;
  void      XMDECN4(
    float _x,
    float _y,
    float _z,
    float _w
  ) noexcept;
  void      XMDECN4(
    const float *pArray
  ) noexcept;
  void      operator uint32_t() noexcept;
  XMDECN4 & operator=(
    uint32_t Packed
  ) noexcept;
};

Members

x

Signed integer value in the range [-511, 511] describing the x-coordinate of the vector.

y

Signed integer value in the range [-511, 511] describing the y-coordinate of the vector.

z

Signed integer value in the range [-511, 511] describing the z-coordinate of the vector.

w

Signed integer value in the range [-1, 1] describing the w-coordinate of the vector.

v

Unsigned 32-bit integer representing the 4D vector.

void XMDECN4()

Default constructor for XMDECN4.

Default constructor for XMDECN4 .

Note  This constructor is only available under C++.
 

void XMDECN4( const XMDECN4 & unnamedParam1)

A constructor for XMDECN4.

A constructor for XMDECN4.

Note  This constructor is only available under C++.

XMDECN4 & operator=( const XMDECN4 & unnamedParam1)

void XMDECN4( XMDECN4 && unnamedParam1)

A constructor for XMDECN4.

A constructor for XMDECN4.

Note  This constructor is only available under C++.

XMDECN4 & operator=( XMDECN4 && unnamedParam1)

Assigns the vector component data from one instance of XMDECN4 to the current instance of XMDECN4.

This operator assigns the vector component data from one instance of XMDECN4 to the current instance of XMDECN4.

Note  This operator is only available under C++.

void XMDECN4( uint32_t Packed) noexcept

Initializes a new instance of XMDECN4 from a uint32_t variable containing component data in a packed format.

This constructor initializes a new instance of XMDECN4 from a uint32_t variable containing component data in a packed format.

Note  This constructor is only available under C++.
 

void XMDECN4( float _x, float _y, float _z, float _w) noexcept

Initializes a new instance of XMDECN4 from four normalized float arguments.

This constructor initializes a new instance of XMDECN4 from four normalized float arguments.

Note  This constructor is only available under C++.
 

void XMDECN4( const float *pArray) noexcept

Initializes a new instance of XMDECN4 from a four element float array argument.

This constructor initializes a new instance of XMDECN4 from a four element float array argument.

Note  This constructor is only available under C++.

void operator uint32_t() noexcept

Returns an instance of uint32_t containing the components of the XMDECN4 instance in a packed format.

Returns an instance of uint32_t containing the components of the XMDECN4 instance in a packed format.

Note  This operator is only available under C++.
 

XMDECN4 & operator=( uint32_t Packed) noexcept

This operator assigns the vector component data packed in an instance of uint32_t to the current instance of XMDECN4.

Note  This operator is only available under C++.
 

Remarks

Those XMDECN4 constructors using floating point arguments require normalized input, which must be in the range of [-1.0.-1.0]. During instantiation, the inputs specifying the x-, y-, and z-components are then multiplied by 511.0f, the results are rounded and then assigned to the appropriate members of XMDECN4.

XMDECN4 can be used to load instances of XMVECTOR from normalized values, by using XMLoadDecN4, which divides the x-, y-, and z-components by 511.0f, rounds the result, and then assigns the components to an XMVECTOR instance.

XMVECTOR instances containing normalized values can be stored into XMDECN4 using XMStoreDecN4, which multiplies the x-, y-,and z-components by 511.0f , rounding the result, before assigning the values to the appropriate XMDECN4 members.

Namespace: Use DirectX::PackedVector

Platform Requirements

Microsoft Visual Studio 2010 or Microsoft Visual Studio 2012 with the Windows SDK for Windows 8. Supported for Win32 desktop apps, Windows Store apps, and Windows Phone 8 apps.

Requirements

Requirement Value
Header directxpackedvector.h

See also

DirectXMath Library Structures

XMDECN4 Extensions