Here is what I'm doing to move the camera.

Code:

`Vec m = Vec(Ms.win_posi.x, 0, Ms.win_posi.y);`

Vec d = Vec(D.x(), 0, D.y());

Vec move = Vec(0,0,0);

float speed = 20.0f;

if( m.x <= 0 )

move.x = -1;

if( m.x >= d.x )

move.x = 1;

if( m.z <= 0 )

move.z = 1;

if( m.z >= d.z )

move.z = -1;

move *= Cam.matrix.orn.normalize();

move.y = 0;

move.normalize();

camPos += move * speed * Time.d();

The problem is that it doesn't seem to move at the same speed in each direction. The camera seems to move faster forward that it does to the left/right. The pitch seems to affect the speed.

Can anyone see anything wrong with my code?

I'm not sure how to do it with the SinCos method you mentioned. If you can explain that a little more, I will give it a try.