void keyboard (unsigned char key, int x, int y)
{
    switch (key) {
        case 's':   /*  s key rotates at shoulder  */
            shoulder = (shoulder + 5) % 360;
            glutPostRedisplay();
            break;
        case '1':
            if (upper_arm1 < 50){
                
                upper_arm1 = (upper_arm1 + 5) % 360;
                glutPostRedisplay();
            }
            break;
        case 'S':
            shoulder = (shoulder - 5) % 360;
            glutPostRedisplay();
            break;
        case 'e':  /*  e key rotates at elbow  */
            elbow = (elbow + 5) % 360;
            glutPostRedisplay();
            break;
        case 'E':
            elbow = (elbow - 5) % 360;
            glutPostRedisplay();
            break;
        case 'd':
            
            theta = theta + 10;
            
            newViewpoint();
            
            break;
        case 'a':
            
            theta = theta - 10;
            
            newViewpoint();
            
            break;
        case 'w':
            if (phi + 10 < 90){
                
                phi = phi + 10;
                
                newViewpoint();
            }
            break;
        case 'z':
            if (phi - 10 > -90){
                
                phi = phi - 10;
                
                newViewpoint();
            }
            break;
        default:
            break;
    }
}
Exemple #2
0
/**
 * Draw this object from this point of view, and return
 * the resulting image.  
 * The output CkView will be unref()'d exactly once after
 * each call to render.
 */
CkView *CkInterestViewable::renderView(const CkViewpoint &univ2screen) {
	CkViewpoint univ2texture;
	priorityAdjust=0; /* no priority */
	if (!newViewpoint(univ2screen,univ2texture))
		return NULL;
	CkInterestView *ret=new CkInterestView(
		univ2texture.getWidth(),univ2texture.getHeight(),4,
		interest,univ2texture);
	renderImage(univ2texture,ret->getImage());
	return ret;
}