Blame view

legacy/rts_old_Camera.h 1.84 KB
f1402849   dmayerich   renewed commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
  #include "rtsLinearAlgebra.h"

  

  #ifndef _RTSMATH_H

  #define _RTSMATH_H

  

  #define	CAMERA_UP		-1

  #define CAMERA_DOWN		 1

  #define CAMERA_LEFT		-1

  #define CAMERA_RIGHT	 1

  

  struct rtsCameraState

  {

  	point3D<float> position;

  	point3D<float> lookat;

  	vector3D<float> up;

  	float pers_view_angle;

  	float ortho_width;

  	float ortho_height;

  	float near_plane;

  	float far_plane;

  };

  

  class rtsCamera

  {

  	//members

  	point3D<float> position;

  	vector3D<float> view_vector;

  	vector3D<float> up_vector;

  	point3D<float> lookat_point;

  	float pers_view_angle;

  	float ortho_width;

  	float ortho_height;

  	float near_plane;

  	float far_plane;

  

  public:

  

  

  	//constructors

  	rtsCamera();

  	~rtsCamera(){};

  	

  	//methods

  	void LookAt(point3D<float> pos, point3D<float> lookat, vector3D<float> up);

  	/*

  	void RotateUpDown(double degrees);		

  	void RotateLeftRight(double degrees);	

  	void Pan(double x, double y);

  	void Yaw(double degrees);

  	void Pitch(double degrees);

  	void Forward(double distance);

  	void ScaleForward(double factor, double min = 0, double max = 999999);

  	void DollyLeftRight(double distance);

  	void DollyUpDown(double distance);

  	void Zoom(double angle);

  	void LookAt(point3D<float> point);

  	void Position(point3D<float> point);

  	void Up(vector3D<float> up);

  	void DollyPosition(point3D<float> point);		//moves the camera but keeps the current orientation

  	*/

  

  	//get methods

  	rtsCameraState getState();

  	vector3D<float> getView(){return view_vector;}

  	vector3D<float> getUp(){return up_vector;}

  	point3D<float> getPosition(){return position;}

  	point3D<float> getLookAt(){return lookat_point;}

  	double getViewAngle(){return pers_view_angle;}

  	double getNearPlane(){return near_plane;}

  	double getFarPlane(){return far_plane;}

  	double getOrthoWidth(){return ortho_width;}

  	double getOrthoHeight(){return ortho_height;}

  

  	

  };

  

  #endif