Seems the C3DTransform is a bit fat. It contains translation, scale, rotation logic, as well as lookat logic and rotation along line logic. Can we place these different features into individual class?