代码拉取完成,页面将自动刷新
#pragma once
#include<glm/glm.hpp>
#include<glm/gtc/matrix_transform.hpp>
using namespace glm;
//定义几个特定的移动方式
enum Camera_Movement
{
FORWARD,
BACKWARD,
LEFT,
RIGHT,
UP,
DOWN
};
//缺省的相机参数
const float PITCH = 0.0f;
const float YAW = 0.0f;
const float SPEED = 2.5f;
const float SENSITIVITY = 0.0025f;
const float ZOOM = 45.0f;
//一个相机抽象类,用来处理输入和计算欧拉角等,做opengl的输入
class Camera
{
public:
//相机属性
vec3 CameraPos, CameraFront, CameraUp, CameraRight, WorldUp;
float CameraPitch, CameraYaw;//欧拉角
float CameraSpeed, MouseSensitivity, CameraZoom;//相机选项
//采用向量来构造
Camera(vec3 Pos = vec3(0.0f, 1.0f, 20.0f), vec3 Up = vec3(0.0f, 1.0f, 0.0f), float Pitch = PITCH, float Yaw = YAW);
//通过分量参数进行构造
Camera(float PosX, float PosY, float PosZ, float UpX, float UpY, float UpZ, float Pitch = PITCH, float Yaw = YAW);
//获取ViewMatrix
mat4 GetViewMatrix();
//键盘输入
void ProcessKeyboard(Camera_Movement direction, float deltaTime);
//接收并处理鼠标输入
void ProcessMouseMovement(float xoffset, float yoffset, bool ConstrainPitch);
//接收滚轮信号
void ProcessMouseScroll(float yoffset);
private:
void UpdateCameraVector();
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。