function cameramousekeys()
a11,a12,a13,a14,a21,a22,a23,a24,a31,a32,a33,a34,a41,a42,a43,a44=getCameraInfo(IG3D_ROTATION_MATRIX)
setSceneInfo(IG3D_MOUSE_VIEW, true, 1)
dx,dy=getSceneInfo(IG3D_MOUSE_DELTA)
if time() > (st+1.0) then

ya=ya-dx*0.2
if ya>180 then
ya=ya-360
end
if ya<-180 then
ya=ya+360
end

xa=xa+dy*0.2
if xa>180 then
xa=xa-360
end
if xa<-180 then
xa=xa+360
end

mx=0
my=0
mz=0

if key("w","-") then
mx=mx+a31*passed()*speed
my=my+a32*passed()*speed
mz=mz+a33*passed()*speed
end

if key("s","-") then
mx=mx-a31*passed()*speed
my=my-a32*passed()*speed
mz=mz-a33*passed()*speed
end

if key("a","-") then
mx=mx+a11*passed()*speed
my=my+a12*passed()*speed
mz=mz+a13*passed()*speed
end

if key("d","-") then
mx=mx-a11*passed()*speed
my=my-a12*passed()*speed
mz=mz-a13*passed()*speed
end

if key("r","-") then
my=my+1*passed()*speed
end

if key("f","-") then
my=my-1*passed()*speed
end
setCameraInfo(IG3D_ROTATION, xa,ya,za)
cx,cy,cz=getCameraInfo(IG3D_POSITION)
setCameraInfo(IG3D_POSITION, cx+mx, cy+my, cz+mz)
else
firstFrame=false
end
end