nuclear@39: /* nuclear@39: Stereoscopic tunnel for iOS. nuclear@39: Copyright (C) 2011 John Tsiombikas nuclear@39: nuclear@39: This program is free software: you can redistribute it and/or modify nuclear@39: it under the terms of the GNU General Public License as published by nuclear@39: the Free Software Foundation, either version 3 of the License, or nuclear@39: (at your option) any later version. nuclear@39: nuclear@39: This program is distributed in the hope that it will be useful, nuclear@39: but WITHOUT ANY WARRANTY; without even the implied warranty of nuclear@39: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the nuclear@39: GNU General Public License for more details. nuclear@39: nuclear@39: You should have received a copy of the GNU General Public License nuclear@39: along with this program. If not, see . nuclear@39: */ nuclear@39: nuclear@20: #ifndef CAM_H_ nuclear@20: #define CAM_H_ nuclear@20: nuclear@20: enum { nuclear@20: CAM_CENTER, nuclear@20: CAM_LEFT, nuclear@20: CAM_RIGHT nuclear@20: }; nuclear@20: nuclear@20: /* reset to the initial state */ nuclear@20: void cam_reset(void); /* all */ nuclear@20: void cam_reset_view(void); /* view parameters */ nuclear@20: void cam_reset_proj(void); /* projection parameters */ nuclear@20: void cam_reset_stereo(void); /* stereo parameters */ nuclear@20: nuclear@20: /* camera viewing parameters */ nuclear@20: void cam_pan(int dx, int dy); /* pan across X/Z plane */ nuclear@20: void cam_height(int dh); /* move verticaly */ nuclear@20: void cam_rotate(int dx, int dy); /* rotate around local Y and X axis */ nuclear@20: void cam_zoom(int dz); /* dolly the camera fwd/back */ nuclear@20: nuclear@20: /* camera projection parameters */ nuclear@20: void cam_clip(float n, float f); /* set clipping planes */ nuclear@20: void cam_fov(float f); /* vertical field of view in degrees */ nuclear@20: void cam_aspect(float a); /* aspect ratio (width / height) */ nuclear@20: nuclear@20: /* stereo parameters */ nuclear@20: void cam_separation(float s); nuclear@20: void cam_focus_dist(float d); nuclear@20: nuclear@20: /* multiply the camera view matrix on top of the current matrix stack nuclear@20: * (which should be GL_MODELVIEW) nuclear@20: */ nuclear@20: void cam_view_matrix(void); nuclear@20: void cam_stereo_view_matrix(int eye); nuclear@20: nuclear@20: /* multiply the camera projection matrix on top of the current matrix stack nuclear@20: * (which should be GL_PROJECTION) nuclear@20: */ nuclear@20: void cam_proj_matrix(void); nuclear@20: void cam_stereo_proj_matrix(int eye); nuclear@20: nuclear@20: #endif /* CAM_H_ */