📄 camera.h
字号:
/*==========================================================================;
*
* 光线游戏引擎(Light Game Engine)
*
* 版权所有 (C) 2005-2007 康 旭。 保留所有权利。
* Copyright (C) KangXu. All Rights Reserved.
*
* 文件: camera.h
* 内容: 摄像机函数
*
****************************************************************************/
/*! \file camera.h * 摄像机函数 */
/*! \class LightCamera * \brief 摄像机类 * * 本类负责摄像机的控制。 * 每个 LightCamera 实例都必须通过 LightEngine 类的 NewCamera 方法分配。 */
class LightCamera
{
public:
/*! \fn void Viewport( int x, int y, int width, int height ) = 0 * \brief 定义视口 * * 定义视口 * * \param int x 视口左上角 x 坐标 * * \param int y 视口左上角 y 坐标 * * \param int width 视口宽度 * * \param int height 视口高度 * * \return 无如果函数调用成功,返回非零值;如果函数调用失败,返回零。 * * \see
*/
virtual void Viewport( int x, int y, int width, int height ) = 0;
/*! \fn void Perspective( double fovy, double aspect, double znear, double zfar ) = 0 * \brief 定义对称透视视图体 * * 定义对称透视视图体 * * \param double fovy 在 x-z 平面内视区的角度,其值必须在区间 [0.0,180.0] 内。 * * \param double aspect 长宽比,是平截台体的宽度和高度之比。 * * \param double znear 视点(沿 z 轴负方向)与近裁剪平面的距离。 * * \param double zfar 视点(沿 z 轴负方向)与远裁剪平面的距离。 * * \return 无 * * \see
*/
virtual void Perspective( double fovy, double aspect, double znear, double zfar ) = 0;
/*! \fn void Ortho( double left, double right, double bottom, double top, double zNear, double zFar ) = 0 * \brief 定义正交视图体 * * 定义正交视图体 * * \param double left 远近裁剪平面的矩形左 x 坐标 * * \param double right 远近裁剪平面的矩形右 x 坐标 * * \param double bottom 远近裁剪平面的矩形下 y 坐标 * * \param double top 远近裁剪平面的矩形上 y 坐标 * * \param double znear 视点(沿 z 轴负方向)与近裁剪平面的距离。 * * \param double zfar 视点(沿 z 轴负方向)与远裁剪平面的距离。 * * \return 无 * * \see
*/
virtual void Ortho( double left, double right, double bottom, double top, double zNear, double zFar ) = 0;
/*! \fn void LookAt( double eyex, double eyey, double eyez,
* double centerx, double centery, double centerz,
* double upx, double upy, double upz ) = 0 * \brief 设置摄像机参数 * * 设置摄像机参数 * * \param double eyex 视点(眼睛所在位置) x 坐标 * * \param double eyey 视点(眼睛所在位置) y 坐标 * * \param double eyez 视点(眼睛所在位置) z 坐标 * * \param double centerx 视线上的任意一点 x 坐标 * * \param double centery 视线上的任意一点 y 坐标 * * \param double centerz 视线上的任意一点 z 坐标 * * \param double upx 向上方向(即视图体自下而上的方向)上一点的 x 坐标 * * \param double upy 向上方向(即视图体自下而上的方向)上一点的 y 坐标 * * \param double upz 向上方向(即视图体自下而上的方向)上一点的 z 坐标 * * \return 无 * * \see
*/
virtual void LookAt( double eyex, double eyey, double eyez,
double centerx, double centery, double centerz,
double upx, double upy, double upz ) = 0;
/*! \fn void Rotate( vec3_t pos, vec3_t rotate, float length, vec3_t translation, bool fly, vec3_t eye, vec3_t center, vec3_t up ) = 0
* \brief 旋转摄像机 * * 旋转摄像机 * * \param vec3_t pos 摄像机所在位置 * * \param vec3_t rotate 摄像机旋转角度 * * \param float length 视线长度 * * \param vec3_t translation 摄像机平移 * * \param bool fly 是否为飞行模式, 0 为步行模式, 1 为飞行模式 * * \param vec3_t eye 视点(眼睛所在位置)坐标 * * \param vec3_t center 视线上的任意一点坐标 * * \param vec3_t up 向上方向(即视图体自下而上的方向)上一点的坐标 * * \return 无 * * \see
*/
virtual void Rotate( vec3_t pos, vec3_t rotate, float length, vec3_t translation, bool fly, vec3_t eye, vec3_t center, vec3_t up ) = 0;
/*! \fn int UpdateCamera( void ) = 0 * \brief 应用摄像机设置 * * 应用摄像机设置 * * \param 无 * * \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。 * * \see
*/
virtual int UpdateCamera( void ) = 0;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -