struct vector3_t
{
vector3_t(float x, float y, float z) : x(x), y(y), z(z) {}
vector3_t(const vector3_t &v) : x(v.x), y(v.y), z(v.z) {}
vector3_t() : x(0.0f), y(0.0f), z(0.0f) {}
.
.
.
union
{
struct
{
float x;
float y;
float z;
};
float v[3];
};
};

ベクトルを表す構造体&共用体なんですが、いまいちやってる事の意味が分かりません。
共用体によって扱いを楽にしてるのはなんとなく分かるんですが、上の3行って一体・・