To get the v3 from v4 he made the struct like this:
struct v4 { struct { union { v3 rgb; struct { real32 r, g, b; }; }; real32 a; } }
But why can't we do it like the v3 and v2.
struct v4 { union { struct { real32 x, y, z, w; }; struct { real32 r, g, b, a; }; struct { v3 rgb; real32 ignored0_; }; real32 E[4]; }; }
I tried this and nothing seems to be obviously broken. Not sure why he is making it like this in case of v4.