/************************************** Here are the constructors. ***************************************/ Camera::Camera(){ setEyeX(0.0); setEyeY(0.0); setEyeZ(0.0); setCenterX(0.0); setCenterY(0.0); setCenterZ(0.0); setUpX(0.0); setUpY(0.0); setUpZ(0.0); setFovy(0.0); setAspect(0.0); setZNear(0.0); setZFar(0.0); mouseDirection[0] = 0; mouseDirection[1] = 1; mouseDirection[2] = 0; glMatrixMode(GL_MODELVIEW); move[0] = false; move[1] = false; move[2] = false; move[3] = false; }
Camera::Camera(double eyeX, double eyeY, double eyeZ, double centerX, double centerY, double centerZ, double upX,double upY,double upZ, double fovy, double aspect, double zNear, double zFar){ setEyeX(eyeX); setEyeY(eyeY); setEyeZ(eyeZ); setCenterX(centerX); setCenterY(centerY); setCenterZ(centerZ); setUpX(upX); setUpY(upY); setUpZ(upZ); setFovy(fovy); setAspect(aspect); setZNear(zNear); setZFar(zFar); mouseDirection[0] = 0; mouseDirection[1] = 90; mouseDirection[2] = 0; glMatrixMode(GL_MODELVIEW); move[0] = false; move[1] = false; move[2] = false; move[3] = false; }
void Camera::setPerspective(double fovy,double aspect,double zNear,double zFar){ glLoadIdentity(); glEnable(GL_DEPTH_TEST); glMatrixMode(GL_PROJECTION); glMatrixMode(GL_MODELVIEW); setFovy(fovy); setAspect(aspect); setZNear(zNear); setZFar(zFar); }
void Camera::setToDefaults( void ) { GeometricalTransformation::setToDefaults(); ProjectionTransformation::setToDefaults(); setProjectionLeft( vgm::MatrixR(vgm::MatrixR::getIdentity()) ); setLookAtLeft( vgm::MatrixR(vgm::MatrixR::getIdentity()) ); setProjectionRight( vgm::MatrixR(vgm::MatrixR::getIdentity()) ); setLookAtRight( vgm::MatrixR(vgm::MatrixR::getIdentity()) ); setViewport( vgm::Rectangle2i(0, 0, 1600, 1200) ); setFovy( (45.f) ); setMode( (MONOSCOPIC) ); setEyeSeparation( (0.f) ); setImageShift( (0.f) ); setRightEye( (true) ); }
void Camera::sethFovy( const FovyValueType fovy) { Camera::AspectValueType aspect; Camera::ZNearValueType zNear; Camera::ZFarValueType zFar; setFovy( fovy ); if ( getAspect( aspect ) && getZNear( zNear ) && getZFar( zFar ) ) { vgm::MatrixR matrix; matrix.setPerspective( fovy, aspect, zNear, zFar ); setProjection( matrix ); } else { vgAssertN( false, "sethFovy() called before zNear, zFar and aspect have been initialized."); } }
void Camera::zoom(float z) { setFovy(z/10); }