nuclear@0: #ifndef CAM_H_ nuclear@0: #define CAM_H_ nuclear@0: nuclear@0: enum { nuclear@0: CAM_CENTER, nuclear@0: CAM_LEFT, nuclear@0: CAM_RIGHT nuclear@0: }; nuclear@0: nuclear@0: /* reset to the initial state */ nuclear@0: void cam_reset(void); /* all */ nuclear@0: void cam_reset_view(void); /* view parameters */ nuclear@0: void cam_reset_proj(void); /* projection parameters */ nuclear@0: void cam_reset_stereo(void); /* stereo parameters */ nuclear@0: nuclear@0: void cam_set_vrange(float min_deg, float max_deg); nuclear@0: nuclear@0: void cam_move(float x, float y, float z); nuclear@0: void cam_rotate(float theta, float phi); nuclear@0: void cam_dolly(float dist); nuclear@0: nuclear@0: /* camera input handling */ nuclear@0: void cam_inp_pan_speed(float speed); nuclear@0: void cam_inp_rotate_speed(float speed); nuclear@0: void cam_inp_zoom_speed(float speed); nuclear@0: nuclear@0: void cam_inp_pan(int dx, int dy); /* pan across X/Z plane */ nuclear@0: void cam_inp_height(int dh); /* move verticaly */ nuclear@0: void cam_inp_rotate(int dx, int dy); /* rotate around local Y and X axis */ nuclear@0: void cam_inp_zoom(int dz); /* dolly the camera fwd/back */ nuclear@0: nuclear@0: /* camera projection parameters */ nuclear@0: void cam_clip(float n, float f); /* set clipping planes */ nuclear@0: void cam_fov(float f); /* vertical field of view in degrees */ nuclear@0: void cam_aspect(float a); /* aspect ratio (width / height) */ nuclear@0: nuclear@0: /* stereo parameters */ nuclear@0: void cam_separation(float s); nuclear@0: void cam_focus_dist(float d); nuclear@0: nuclear@0: nuclear@0: /* multiply the camera view matrix on top of the current matrix stack nuclear@0: * (which should be GL_MODELVIEW) nuclear@0: */ nuclear@0: void cam_view_matrix(void); nuclear@0: void cam_stereo_view_matrix(int eye); nuclear@0: nuclear@0: /* multiply the camera projection matrix on top of the current matrix stack nuclear@0: * (which should be GL_PROJECTION) nuclear@0: */ nuclear@0: void cam_proj_matrix(void); nuclear@0: void cam_stereo_proj_matrix(int eye); nuclear@0: nuclear@0: #endif /* CAM_H_ */