public float this[int _Index]
{
get { return _Index == 0 ? x : (_Index == 1 ? y : (_Index == 2 ? z : (_Index == 3 ? w : float.NaN))); }
set
{
if ( _Index == 0 )
x = value;
else if ( _Index == 1 )
y = value;
else if ( _Index == 2 )
z = value;
else if ( _Index == 3 )
w = value;
}
}