That makes sense, and I don’t think you really want a rotor class at all - just 
a “rotation” class that has methods to e.g. rotate a vector or return the axis 
of rotation or return the angle of rotation.

It’s very much a design decision what to put at the _type_ level and what to 
put at the _value_ level. For instance, you might want rotation, translation, 
dilation to be separate classes, or you may want to have a single class that 
just represents “affine transformation”. Similarly, you might constrain 
rotations to be a quaternion with unit norm, or you might allow them to have 
any norm (so it’s a simultaneous rotation and dilation).

I’d be tempted to put as much as possible at the value level and then 
specialize as necessary.

Reply via email to