Szukałem vec4
implementacji kodu źródłowego glm i zastanawiałem się, dlaczego reprezentują one wartości wektorowe w połączeniu, zamiast pierwotnych typów danych, takich jak float
lub int
?Dlaczego glm :: vec reprezentuje wartości vec jako związki?
Jest to kod znalazłem w vec4
realizacji:
union { T x, r, s; };
union { T y, g, t; };
union { T z, b, p; };
union { T w, a, q; };
Jaka jest różnica, jeśli po prostu napisać T x
, T y
, T z
, T w
?
Uwaga: powoduje to, że 'v.x == v.r == v.s' – pingul