Hi. I have a 3d rotation problem that really shows up my lack
of 3d knowledge lol. I’m trying to move a camera around using
the arrow keys. Left-right arrow is supposed to rotate about
local camera z axis, and up-down around local x-axis. But
this code seems to rotate around the origin. Is it something
to do with the order of operations?
Any help greatly appreciated.
//=====================================================
SwitchTo3D(WINDOW_WIDTH, WINDOW_HEIGHT);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
/// Load ship Position Matrix (camera)
XFORM3D m;
XForm3D_SetIdentity(&m);
XForm3D_RotateZLocal(&m, Float_DegToRad(AngleZ));
XForm3D_RotateXLocal(&m, Float_DegToRad(AngleX));
XForm3D_SetTranslation(&m, Pos.x, Pos.y, Pos.z);
glLoadMatrixf((GLfloat *)&m);
DrawPlanet(Pos);
//=====================================================