XMDEC4::XMDEC4(constfloat*)-Funktion (directxpackedvector.h)
Initialisiert eine neue instance von XMDEC4 aus einem Argument mit vier Elementenarrayfloat
.
Dieser Konstruktor initialisiert eine neue instance von XMDEC4 aus einem aus einem Float-Array-Argument mit vier Elementen.
Syntax
void XMDEC4(
const float *pArray
) noexcept;
Parameter
pArray
Vier Element-Gleitkommaarray mit den Werten, die zum Initialisieren der vier Komponenten einer neuen instance von XMDEC4 verwendet werden.
Rückgabewert
Keine
Bemerkungen
Da XMDEC4 einen ganzzahligen Vektor mit vier Komponenten darstellt, wird der Bruchteil eines pArray-Elements abgeschnitten.
Arrayelemente werden den Vektorkomponenten einer neuen instance von XMDEC4 wie folgt zugeordnet:
Vektorkomponente | Array-Element | Bereich |
---|---|---|
x | pArray[0] | -511, 511 |
j | pArray[1] | -511, 511 |
z | pArray[2] | -511, 511 |
w | pArray[3] | -1, 1 |
Elemente von pArray werden vor der Zuordnung zum entsprechenden Element von XMDEC4 in den zulässigen Bereich eingespannt.
Der folgende Pseudocode veranschaulicht den Betrieb dieses Konstruktors, der die Union der vier Komponenten des XMDEC4-Vektors mit einem instance von uint32_t
in der Definition der Struktur nutzt:
XMDEC4 instance;
_x1=min( max( pArray[0], -511.0 ), 511.0 );
_y1=min( max( pArray[1], -511.0 ), 511.0 );
_z1=min( max( pArray[2], -511.0 ), 511.0 );
_w1=min( max( pArray[3], -1.0 ), 1.0 );
instance.v = ( (int32_t)_w1 << 30) |
(((int32_t)_z1 & 0x3FF) << 20) |
(((int32_t)_y1 & 0x3FF) << 10) |
(((int32_t)_x1 & 0x3FF));
Anforderungen
Zielplattform | Windows |
Kopfzeile | directxpackedvector.h |