-
Notifications
You must be signed in to change notification settings - Fork 0
/
CameraController.cpp
63 lines (54 loc) · 1.21 KB
/
CameraController.cpp
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
/*
* CameraController.cpp
* Nomlets
*
* Created by Chris Cooper on 10-12-15.
* Copyright 2010 Chris Cooper. All rights reserved.
*
*/
#include "CameraController.h"
#include "Environment.h"
void updateCamera(){
cameraAngle += cameraAngleSpeed;
if (cameraAngle > 360) {
cameraAngle -= 360;
}
if (cameraAngle < 0) {
cameraAngle += 360;
}
if (cameraAngleSpeed > cameraIdleSpinSpeed || cameraAngleSpeed < -cameraIdleSpinSpeed){
cameraAngleSpeed *= cameraAngleInertia;
}
if (cameraDistance > maximumCameraDistance) {
cameraDistance = maximumCameraDistance;
}
if (cameraDistance < minimumCameraDistance) {
cameraDistance = minimumCameraDistance;
}
cameraDistance += cameraDistanceSpeed;
cameraDistanceSpeed *= cameraDistanceInertia;
}
void rotateCamera(Direction direction){
switch (direction) {
case LEFT:
cameraAngleSpeed += cameraAngleAcceleration;
break;
case RIGHT:
cameraAngleSpeed -= cameraAngleAcceleration;
break;
default:
break;
}
}
void zoomCamera(Direction direction){
switch (direction) {
case IN:
cameraDistanceSpeed -= cameraDistanceAcceleration;
break;
case OUT:
cameraDistanceSpeed += cameraDistanceAcceleration;
break;
default:
break;
}
}