Molecular Vis
Improving perception of molecular visualization
Camera.h
1 #pragma once
2 #include <glm/glm.hpp>
3 #include <glm\gtc\matrix_transform.hpp>
4 #include <iostream>
12 class Camera
13 {
14 private:
15  float pitch, yaw, radius;
16  int lastX, lastY;
17  glm::vec3 position;
18  glm::vec3 strafe;
19  glm::vec3 normalizedDirection;
20  glm::mat4 projectionMatrix;
21  glm::mat4 viewMatrix;
22  glm::mat4 projectionViewMatrix;
23  glm::mat4 inverseProjectionViewMatrix;
24 public:
33  Camera(float fov, float aspect, float near, float far);
34  ~Camera();
35 
47  glm::mat4 getProjectionViewMatrix();
48 
54  glm::mat4 getViewMatrix();
55 
61  glm::vec3 getPosition();
62 
68  glm::vec3 getDirection();
69 
81  void update(int x, int y, float zoom, bool dragging, bool strafing);
82 };
83 
glm::vec3 getDirection()
Definition: Camera.cpp:48
glm::mat4 getProjectionViewMatrix()
Definition: Camera.cpp:33
void update(int x, int y, float zoom, bool dragging, bool strafing)
Definition: Camera.cpp:53
A class for an arc-ball camera.
Definition: Camera.h:12
glm::mat4 getInverseProjectionViewMatrix()
Definition: Camera.cpp:28
glm::vec3 getPosition()
Definition: Camera.cpp:43
Camera(float fov, float aspect, float near, float far)
Definition: Camera.cpp:7
glm::mat4 getViewMatrix()
Definition: Camera.cpp:38