// if we are allowed to rotate:
if(my.allowRotate == 1){
// rotate camera angles:
camAngle.pan = -mouseSpeed * mickey.x;
camAngle.tilt = -mouseSpeed * mickey.y;
// no ROLL movement:
camAngle.roll = 0;
}
// accelerate rotation:
my.speedPan = (time_step * camAngle.pan) + (maxv(1 - time_step * 0.9, 0) * my.speedPan);
my.speedTilt = (time_step * camAngle.tilt) + (maxv(1 - time_step * 0.9, 0) * my.speedTilt);
my.speedRoll = (time_step * camAngle.roll) + (maxv(1 - time_step * 0.9, 0) * my.speedRoll);
// rotate temp camera angle:
camTemp.pan += my.speedPan * time_step;
camTemp.tilt += my.speedTilt * time_step;
camTemp.roll += my.speedRoll * time_step;
// limit temp tilt angle:
camTemp.tilt = clamp(camTemp.tilt, -90, 90);
// rotate camera angles:
camera.pan = camTemp.pan;
camera.tilt = camTemp.tilt;
camera.roll = camTemp.roll;
// limit camera tilt angle:
camera.tilt = clamp(camera.tilt, -90, 90);
// rotate me as well:
my.pan = camera.pan;