void Motion(int x,int y) { if(button==GLUT_DOWN) { double dx,dy; YsVec3 vec; dx=double(x-lastX); dy=double(lastY-y); switch(mouseMode) { case 0: eyeAtt.NoseUp(dy/300.0); eyeAtt.YawLeft(-dx/300.0); break; case 1: vec.Set(-dx/30.0,-dy/30.0,0.0); vec=eyeAtt.GetMatrix()*vec; eyeLookAt=eyeLookAt+vec; break; } glutPostRedisplay(); } lastX=x; lastY=y; }
void YsClassSample::Motion(int x,int y) { double dx,dy; YsVec3 vec; dx=double(x-lastX); dy=double(lastY-y); switch(mouseMode) { case 0: eyeAtt.NoseUp(dy/300.0); eyeAtt.YawLeft(-dx/300.0); break; case 1: vec.Set(-dx/30.0,-dy/30.0,0.0); vec=eyeAtt.GetMatrix()*vec; eyeLookAt=eyeLookAt+vec; break; case 2: RotatePolygon(p,dy/300.0,-dx/300.0); break; case 3: RotatePolygon(q,dy/300.0,-dx/300.0); break; case 4: RotatePolygon(r,dy/300.0,-dx/300.0); break; } lastX=x; lastY=y; }