XMXDECN4 structure (directxpackedvector.h)
A 4D vector for storing signed, normalized values as 10 bit signed x-,y-, and z- components and an unsigned, normalized value as 2 bit unsigned w-component.
For a list of additional functionality such as constructors and operators that are available
using XMXDECN4
when you are programming in C++, see XMXDECN4 Extensions.
Syntax
struct XMXDECN4 {
union {
struct {
int32_t x : 10;
int32_t y : 10;
int32_t z : 10;
uint32_t w : 2;
};
uint32_t v;
};
void XMXDECN4();
void XMXDECN4(
const XMXDECN4 & unnamedParam1
);
XMXDECN4 & operator=(
const XMXDECN4 & unnamedParam1
);
void XMXDECN4(
XMXDECN4 && unnamedParam1
);
XMXDECN4 & operator=(
XMXDECN4 && unnamedParam1
);
void XMXDECN4(
uint32_t Packed
);
void XMXDECN4(
float _x,
float _y,
float _z,
float _w
) noexcept;
void XMXDECN4(
const float *pArray
) noexcept;
void operator uint32_t() noexcept;
XMXDECN4 & 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
Unsigned integer value in the range [0, 3] describing the w-coordinate of the vector.
v
Unsigned 32-bit integer representing the 4D vector.
Default constructor for XMXDECN4
.
Default constructor for XMXDECN4 .
void XMXDECN4( const XMXDECN4 & unnamedParam1)
A constructor for XMXDECN4 .
A constructor for XMXDECN4.
XMXDECN4 & operator=( const XMXDECN4 & unnamedParam1)
void XMXDECN4( XMXDECN4 && unnamedParam1)
A constructor for XMXDECN4 .
A constructor for XMXDECN4.
XMXDECN4 & operator=( XMXDECN4 && unnamedParam1)
Assigns the vector component data from one instance of XMXDECN4
to the current instance of XMXDECN4
.
void XMXDECN4( uint32_t Packed)
Initializes a new instance of XMXDECN4
from a uint32_t
variable containing
component data in a packed format.
This constructor initializes a new instance of XMXDECN4 from a
uint32_t
variable containing component data in a packed format.
void XMXDECN4( float _x, float _y, float _z, float _w) noexcept
Initializes a new instance of XMXDECN4
from four normalized float
arguments.
This constructor initializes a new instance of XMXDECN4 from four
normalized float
arguments.
void XMXDECN4( const float *pArray) noexcept
Initializes a new instance of XMXDECN4 from a four element float
array argument.
This constructor initializes a new instance of XMXDECN4 from a four element float
array argument.
void operator uint32_t() noexcept
Returns an instance of uint32_t
containing the components of the XMXDECN4
instance in a packed format.
Returns an instance of uint32_t
containing the components of the XMXDECN4 instance in a packed format.
XMXDECN4 & operator=( uint32_t Packed) noexcept
Assigns the vector component data packed in an instance of uint32_t
to the current
instance of XMXDECN4
.
This operator assigns the vector component data packed in an instance of uint32_t
to
the current instance of XMXDECN4.
Remarks
Those XMXDECN4
constructors using floating point arguments require normalized input,
which must be in the range of [-1.0.-1.0] for x-, y-, z-components and 0.0 for
the w-component. During instantiation, the inputs specifying the x-, y-, and
z-components are multiplied by 511.0f and the w-component by 3.0f, these results are
rounded and then assigned to the appropriate members of XMXDECN4
.
XMXDECN4
can be used to load instances of XMVECTOR from normalized
values, by using XMLoadXDecN4, which divides the x-, y-, and
z-components by 511.0f, the w-component by 3.0f, rounds the result, and then assigns
the components to an XMVECTOR
instance.
XMVECTOR
instances containing normalized values can be stored into XMXDECN4
using XMStoreXDecN4, which multiplies the x-, y-,and z-components by
511.0f, the w-component by 3.0f, rounding the result, before assigning the values to the
appropriate XMXDECN4
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 |