Why are Matx, Vec, Point and Size different types?
In every program I code, sooner or later I bump up into one of these conversions:
Matx_<Type, N, 1><->Vec_<Type, N>Point_<Type><->Vec_<Type, 2>Point3_<Type><->Vec_<Type, 3>
...or operations like
Size_<Type> + Point_<Type>Size_<Type> * TypePoint_<Type> * Type
Why are these four types not just aliases to Matx? What is the design aim behind this?