Структура D3DVECTOR определена следующим образом:
typedef struct _D3DVECTOR { union { D3DVALUE x; D3DVALUE dvX; }; union { D3DVALUE y; D3DVALUE dvY; }; union { D3DVALUE z; D3DVALUE dvZ; }; } D3DVECTOR, *LPD3DVECTOR;
Объединения позволяют использовать переменные x и dvX (для примера) как взаимозаменяемые. Структура D3DVECTOR повсеместно применяется в Direct3D для представления не только векторов, но и точек.