Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Initialisiert eine neue instance von XMDECN4
vier normalisierten float
Argumenten.
Dieser Konstruktor initialisiert eine neue instance von XMDECN4 aus vier normalisierten float
Argumenten.
Syntax
void XMDECN4(
float _x,
float _y,
float _z,
float _w
) noexcept;
Parameter
_x
Ein normalisierter Wert für die x-Koordinate des Vektors.
Dieses Argument sollte zwischen -1,0 und 1,0 sein. während der Instanziierung eines instance von XMDECN4
wird es mit 511.0f
multipliziert und dann als x-Element der Struktur gespeichert.
_y
Ein normalisierter Wert für die y-Koordinate des Vektors, das y des neuen instance von XMDECN4
.
Dieses Argument sollte zwischen -1,0 und 1,0 sein. während der Instanziierung einer instance von XMDECN4
wird sie mit 511.0f
multipliziert und dann als y-Element der Struktur gespeichert.
_z
Ein normalisierter Wert für die z-Koordinate des Vektors, das z des neuen instance von XMDECN4
.
Dieses Argument sollte zwischen -1,0 und 1,0 sein. während der Instanziierung eines instance von XMDECN4
wird es mit 511.0f
multipliziert und dann als z-Element der Struktur gespeichert.
_w
Ein normalisierter Wert für die w-Koordinate des Vektors, das w des neuen instance von XMDECN4
.
Dieses Argument sollte zwischen -1,0 und 1,0 sein.
Rückgabewert
Keine
Bemerkungen
Alle Eingabewerte, _x, _y, _z und _w werden auf einen Bereich von -1,0 bis 1,0 geklemmt.
Der folgende Pseudocode veranschaulicht den Betrieb dieses Konstruktors, der die union
der vier Komponenten des XMDECN4
Vektors mit einem instance von uint32_t
in der Definition der Struktur nutzt:
XMDECN4 instance;
_x1=min( max( _x, -1.0 ), 1.0 );
_y1=min( max( _y, -1.0 ), 1.0 );
_z1=min( max( _z, -1.0 ), 1.0 );
_w1=min( max( _w, -1.0 ), 1.0 );
_x1 = round( _x1 * 511.0f);
_y1 = round( _y1 * 511.0f);
_z1 = round( _z1 * 511.0f);
instance.v = ( (int32_t)_w1 << 30) |
(((int32_t)_z1 & 0x3FF) << 20) |
(((int32_t)_y1 & 0x3FF) << 10) |
(((int32_t)_x1 & 0x3FF));
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | directxpackedvector.h |
Weitere Informationen
Referenz