Vector SphericalCamera::screenToWorld(const Vector &ssP, const PTime time) const { SphericalCoords sc; sc.longitude = ssP.x * M_PI; sc.latitude = ssP.y * (M_PI * 0.5); sc.radius = ssP.z; Vector csP = sphereToCart(sc); return cameraToWorld(csP, time); }
void display( ) { glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); /* Fixed light Pos */ GLfloat position[] = {15*sin(0.5*seconds), 0 , 15*cos(0.5*seconds)}; glLightfv(GL_LIGHT0, GL_POSITION, position); /* Set up gluLookAt */ double eyex, eyey, eyez; glMatrixMode(GL_MODELVIEW); glLoadIdentity(); sphereToCart(eyeTheta, eyePhi, eyeRho, &eyex, &eyey, &eyez); gluLookAt(eyex, eyey, eyez, 0,0,0, 0,0,1); drawTube(); glutSwapBuffers(); }