⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 camera.h

📁 《光线引擎演示程序》执行程序+源代码,《光线引擎演示程序》执行程序+源代码
💻 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 + -