| 15 | } |
| 16 | |
| 17 | void Camera::resetView() { |
| 18 | position = initialPosition; |
| 19 | horizontalAngle = 3.14f; |
| 20 | verticalAngle = 0.0f; |
| 21 | glm::vec3 direction( |
| 22 | cos(verticalAngle) * sin(horizontalAngle), |
| 23 | sin(verticalAngle), |
| 24 | cos(verticalAngle) * cos(horizontalAngle) |
| 25 | ); |
| 26 | glm::vec3 right = glm::vec3( |
| 27 | sin(horizontalAngle - 3.14f / 2.0f), |
| 28 | 0, |
| 29 | cos(horizontalAngle - 3.14f / 2.0f) |
| 30 | ); |
| 31 | // Camera matrix |
| 32 | ViewMatrix = glm::lookAt( |
| 33 | position, |
| 34 | position + direction, |
| 35 | glm::cross(right, direction) |
| 36 | ); |
| 37 | } |
| 38 | |
| 39 | void Camera::generateSpline(std::vector<TrackBlock> trackBlock) { |
| 40 | std::vector<glm::vec3> cameraPoints; |