-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathViewport.pde
49 lines (40 loc) · 1.18 KB
/
Viewport.pde
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
void createAnimations() {
Ani.init(this);
zoomAnimation = new Ani(this, 0.35, "actualZoom", zoom, Ani.SINE_OUT);
spinnerAnimationStart = new Ani(this, 1.0, 0.25, "spinnerAngleStart", Config.Spinner.StartAngle + 360, Ani.SINE_OUT);
spinnerAnimationEnd = new Ani(this, 1.25, "spinnerAngleEnd", Config.Spinner.EndAngle + 360, Ani.SINE_OUT, "onEnd:onSequenceEnd");
}
void onSequenceEnd() {
spinnerAngleStart = Config.Spinner.StartAngle;
spinnerAngleEnd = Config.Spinner.EndAngle;
spinnerAnimationStart.start();
spinnerAnimationEnd.start();
}
void updateZoomAnimation(float value) {
zoomAnimation.setBegin(actualZoom);
zoomAnimation.setEnd(value);
zoomAnimation.start();
}
void resetRotationMovement() {
rotationYchange = 0;
rotationXchange = 0;
}
void viewport() {
resetRotationMovement();
if (autoRotate) {
rotationXchange = changeSpeedX/2;
rotationYchange = -changeSpeedY/2;
}
updateViewport();
}
void updateViewport() {
translate(translateX, translateY);
// rotation
rotationX += rotationXchange;
rotationY += rotationYchange;
rotateX(radians(rotationX));
rotateY(radians(rotationY));
rotateZ(radians(rotationZ));
// zoom
scale(actualZoom);
}