@AFS
As eXpl0it3r said, it looks odd because they're on the wing tips around the centre. Whether they are on the correct side or not would depend on your choice of to place the thrust on the front or the back of the craft. They are on the correct side if used on the front. However, the back of the craft seems to move a significant amount more than the front does (I presume the centre of rotation is closer to the front) so I think it would make more sense to place the rotational thrust at the back (on the opposite side to where it is now). That said, you could do both; to rotate in space and stay stationary, you would thrust left from the front while thrusting right from the rear. As mentioned earlier, the centre of rotation seems to be closer to the front so the front thrust would be less.
I'll take a look at the implementation of "sw::Sprite3d", I'm curious of how you did it.
There are two parts to it really. One, it breaks down (subdivides) a quad into multiple quads (and then triangles) so that the texture can more predictable, and two, it transforms those points in actual 3D space using a compacted matrix.
Before adding depth to the origin, the matrix was even more compact
I can't remember whether or not each point (quad corners) is transformed using the matrix or just the four outer corners and then interpolated. I think the former.
There is a slightly "hacky" feel to the class, though. Things have to be updated whenever it is drawn as something may have been changed. This led to lots of things being mutable, for example - this is simply because SFML's draw is const; I wanted it to be able to used similarly to a standard sprite - no requirement for an update method.