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

📄 glcamera.h

📁 RBF平台
💻 H
字号:
#ifndef GLCAMERA_H#define GLCAMERA_H/*Szymon RusinkiewiczPrinceton UniversityGLCamera.hManages OpenGL camera and trackball/arcball interaction*/#include "Vec.h"#include "XForm.h"#include "timestamp.h"namespace Mouse {	enum button { NONE, ROTATE, MOVEXY, MOVEZ, WHEELUP, WHEELDOWN, LIGHT };};class GLCamera {private:	int lastmousex, lastmousey;	Mouse::button lastb;	timestamp last_time;	vec lightdir;	bool dospin;	point spincenter;	vec spinaxis;	float spinspeed;	float field_of_view, pixscale;	mutable float surface_depth;	float click_depth;	float tb_screen_x, tb_screen_y, tb_screen_size;	bool read_depth(int x, int y, point &p) const;	void startspin();	vec mouse2tb(float x, float y);	void rotate(int mousex, int mousey, xform &xf);	void movexy(int mousex, int mousey, xform &xf);	void movez(int mousex, int mousey, xform &xf);	void wheel(Mouse::button updown, xform &xf);	void relight(int mousex, int mousey);	void mouse_click(int mousex, int mousey,			 const point &scene_center, float scene_size);public:	GLCamera() : lastb(Mouse::NONE), lightdir(vec(0,0,1)),		     dospin(false), spinspeed(0), field_of_view(0.7f),		     surface_depth(0.0f), click_depth(0.0f)	{		lightdir[0] = lightdir[1] = 0; lightdir[2] = 1;		last_time = now();	}	void setupGL(const point &scene_center, float scene_size) const;	void mouse(int mousex, int mousey, Mouse::button b,		   const point &scene_center, float scene_size,		   xform &xf);	bool autospin(xform &xf);	void stopspin() { dospin = false; }	vec light() const { return lightdir; }	void set_light(const vec &lightdir_) { lightdir = lightdir_; }	float fov() const { return field_of_view; }	void set_fov(float fov_) { field_of_view = fov_; }};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -