ShipToCursor.x = input->GetCursor()->x - fPosition2D.x;
ShipToCursor.y = -(input->GetCursor()->y - fPosition2D.y);
ShipToCursor.z = 0;
Vec3f NewRight = ShipToCursor.cross(matrix.GetZ());
For some reason, whenever the cursor and the ship are at the *EXACT* same window coordinates in full screen mode (windowed for some people, too), my cross product gives me garbage. Now, I don't know how to fix it, but at least I know where to start looking.
I apologize for the boring post, just wanted to share my findings. Maybe one of my two readers will know of a solution I can start looking into.
"Skiing combines outdoor fun with knocking down trees with your face."
- Dave Barry