XMSHORTN4 Structure

A 4D vector for storing signed, normalized values as signed 16-bit integers, (type int16_t).

If you are programming in C++, you can use the constructors and operator methods of this structure.

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

Syntax

struct XMSHORTN4  

Remarks

The fields in the XMSHORTN4 structure are declared as follows:

struct XMSHORTN4
{
    union
    {
        struct
        {
            int16_t x; // Signed 16-bit integer in the range [-32767, 32767] 
                       // describing the x-coordinate of the vector.
            int16_t y; // Signed 16-bit integer in the range [-32767, 32767] 
                       // describing the y-coordinate of the vector.
            int16_t z; // Signed 16-bit integer in the range [-32767, 32767] 
                       // describing the z-coordinate of the vector.
            int16_t w; // Signed 16-bit integer in the range [-32767, 32767] 
                       // describing the w-coordinate of the vector.
        };
        uint64_t v; // Unsigned 64-bit integer representing the 4D vector.
    };  

Those XMSHORTN4 constructors using floating point arguments require normalized input, which must be in the range of [-1.0.-1.0]. During instantiation, these data are multiplied by 32767.0f, results are rounded, and then assigned to the appropriate members of XMSHORTN4.

XMSHORTN4 can be used to load instances of XMVECTOR from normalized values, by using XMLoadShortN4, which divides each component 32767.0f, rounds the result, and then assigns the components to an XMVECTOR instance.

XMVECTOR instances containing normalized values can be stored into XMSHORTN4 using XMStoreShortN4, which multiplies each component by 32767.0f, rounding the result, before assigning the values to the appropriate XMSHORTN4 members.

Namespace: Use DirectX::PackedVector

Requirements

Header: Declared in directxpackedvector.h.