struttura XMFLOAT3PK (directxpackedvector.h)
Descrive un vettore 3D con componenti X e Y archiviati come numero a virgola mobile a 11 bit e il componente Z archiviato come valore a virgola mobile a 10 bit.
Per un elenco di funzionalità aggiuntive, ad esempio costruttori e operatori, disponibili quando XMFLOAT3PK
si esegue la programmazione in C++, vedere XMFLOAT3PK Extensions.
Sintassi
struct XMFLOAT3PK {
union {
struct {
uint32_t xm : 6;
uint32_t xe : 5;
uint32_t ym : 6;
uint32_t ye : 5;
uint32_t zm : 5;
uint32_t ze : 5;
};
uint32_t v;
};
void XMFLOAT3PK();
void XMFLOAT3PK(
const XMFLOAT3PK & unnamedParam1
);
XMFLOAT3PK & operator=(
const XMFLOAT3PK & unnamedParam1
);
void XMFLOAT3PK(
XMFLOAT3PK && unnamedParam1
);
XMFLOAT3PK & operator=(
XMFLOAT3PK && unnamedParam1
);
void XMFLOAT3PK(
uint32_t Packed
) noexcept;
void XMFLOAT3PK(
float _x,
float _y,
float _z
) noexcept;
void XMFLOAT3PK(
const float *pArray
) noexcept;
void operator uint32_t() noexcept;
XMFLOAT3PK & operator=(
uint32_t Packed
) noexcept;
};
Members
6 xm
Mantissa a 6 bit per il componente x.
5 xe
Esponente distorto a 5 bit per il componente x.
6 ym
Mantissa a 6 bit per il componente y.
5 ye
Esponente distorto a 5 bit per il componente y.
5 zm
Mantissa a 5 bit per il componente z.
5 ze
Esponente distorto a 5 bit per il componente z.
v
Intero senza segno a 32 bit che rappresenta il vettore 3D.
Costruttore predefinito per XMFLOAT3PK
.
Costruttore predefinito per XMFLOAT3PK.
void XMFLOAT3PK( const XMFLOAT3PK & unnamedParam1)
Costruttore per XMFLOAT3PK
.
Costruttore per XMFLOAT3PK.
XMFLOAT3PK & operator=( const XMFLOAT3PK & unnamedParam1)
void XMFLOAT3PK( XMFLOAT3PK && unnamedParam1)
Assegna i dati del componente vettoriale da un'istanza di XMFLOAT3SE
all'istanza corrente di XMFLOAT3SE
.
Questo operatore assegna i dati del componente vettoriale da un'istanza di XMFLOAT3SE all'istanza corrente di XMFLOAT3SE
.
XMFLOAT3PK & operator=( XMFLOAT3PK && unnamedParam1)
Assegna i dati del componente vettoriale da un'istanza di XMFLOAT3PK
all'istanza corrente di XMFLOAT3PK
.
Questo operatore assegna i dati del componente vettoriale da un'istanza di XMFLOAT3PK all'istanza corrente di XMFLOAT3PK
.
void XMFLOAT3PK( uint32_t Packed) noexcept
Inizializza una nuova istanza di XMFLOAT3PK
da una uint32_t
variabile contenente i dati del componente in un formato compresso.
Questo costruttore inizializza una nuova istanza di XMFLOAT3PK da una uint32_t
variabile contenente i dati del componente in un formato compresso.
void XMFLOAT3PK( float _x, float _y, float _z) noexcept
Inizializza una nuova istanza di XMFLOAT3PK
da tre float
argomenti.
Questo costruttore inizializza una nuova istanza di XMFLOAT3PK da tre float
argomenti.
void XMFLOAT3PK( const float *pArray) noexcept
Inizializza una nuova istanza di XMFLOAT3PK da un argomento di matrice di tre elementi float
.
Questo costruttore inizializza una nuova istanza di XMFLOAT3PK da un argomento di matrice a tre elementi float
.
Operatore void uint32_t() noexcept
Restituisce un'istanza di uint32_t
contenente i componenti dell'istanza XMFLOAT3PK
in un formato compresso.
Questo operatore restituisce un'istanza di uint32_t
contenente i componenti dell'istanza di XMFLOAT3PK in un formato compresso.
XMFLOAT3PK & operator=( uint32_t Packed) noexcept
Questo operatore assegna i dati del componente vettoriale compressi in un'istanza di uint32_t
all'istanza corrente di XMFLOAT3PK.
Commenti
Non ci sono segni. Ciò significa che tutti i numeri di precisione parziale sono positivi. Il componente z viene archiviato nei bit più significativi e il componente x viene archiviato nei bit meno significativi come segue:
(Z10Y11X11): [31] ZZZZZzzz zzYYYYYy yyyyyXXX XXxxxxxx [0]
In alternativa, in dettaglio:
- I bit 0-5 di v sono la mantissa a 6 bit del valore a virgola mobile del componente x : il membro xm della struttura.
- I bit da 6 a 10 di v sono l'esponente a 5 bit del valore a virgola mobile del componente x il membro xe della struttura.
- I bit da 11 a 16 di v sono la mantissa a 6 bit del valore a virgola mobile del componente y : il membro ym della struttura.
- I bit da 17 a 21 di v sono l'esponente a 5 bit del valore a virgola mobile del componente y : il membro ye della struttura.
- I bit da 22 a 26 di v sono la mantissa a 5 bit del valore a virgola mobile del componente z : il membro zm della struttura.
- I bit da 27 a 31 di v sono l'esponente a 5 bit del valore a virgola mobile del componente z : il membro ze della struttura.
XMFLOAT3PK
può essere caricato in istanze di XMVECTOR usando XMLoadFloat3PK.
Le istanze di XMVECTOR
possono essere archiviate in un'istanza di XMFLOAT3PK
con XMStoreFloat3PK.
MIN_F10/MIN_F11 = 6.10352e-5
MAX_F10 = 64512
MAX_F11 = 65024
Namespace: Usare DirectX::P ackedVector
Requisiti della piattaforma
Microsoft Visual Studio 2010 o Microsoft Visual Studio 2012 con Windows SDK per Windows 8. Supportato per le app desktop Win32, le app di Windows Store e Windows Phone 8 app.Requisiti
Intestazione | directxpackedvector.h |