1. Create a camera translation vector which describes the trajectory I want to the camera to move e.g. v={-5, 0, 0} to move left.
2. Multiply the vector by the inverse of the camera rotation matrix.
3. Add the vector to the translation portion of my camera translation matrix: t = {41, 42, 43}.
Thing with problems like this is to make self clear in what space which transform should be done. The sideways translation that is desired is given in object local space, e.g. (-5, 0, 0). The position which should be altered by the translation is given in world space. So the object local translation is to be transformed into a world translation in order to be appended to the world position.
There are 3 Euler angles that describe the object's orientation in world space. It is hence a local-to-world transform. We assume here that this transform is applied on the unscaled and unrotated object to yield in an re-oriented object, and that the translation to the world position is applied on the re-orientated object.
Hence the way of solving the problem is this:
1.) Compute the rotation matrix R from the 3 Euler angles.
2.) Apply R to the local space translation vector t, yielding in the world space translation vector t'. (Notice that here is no inversion.)
3.) Add the resulting translation vector t' onto the world position vector p to yield in the new world position.
4.) Apply the overall transform, if needed, by 1st rotating the object by R and then translating it by p.
1. I have noticed that depending on the location the camera is in world space - the amount the camera moves varies. From moving quite slowly to moving very quickly. While the amount of 'movement' in the camera translation vector is always the same. Seems to move slower the further from the world coordinates origin the camera is.
Investigate the translation vector before (t) and after (t') the transformation by R. Both vectors must have the same length (in the limits of numerical precision). If not, then the transform does more then just rotate the space. Perhaps you already have a transform combined with non-rotational parts, or you have the conversion of the 3 Euler angles into a matrix wrong, or you accumulate rotation matrices without constraining the resulting matrix.