/
FrameState.js
124 lines (112 loc) · 3.29 KB
/
FrameState.js
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
/*global define*/
define([
'../Core/defined',
'../Core/Cartesian2',
'./SceneMode'
], function(
defined,
Cartesian2,
SceneMode) {
"use strict";
/**
* State information about the current frame. An instance of this class
* is provided to update functions.
*
* @param {CreditDisplay} creditDisplay Handles adding and removing credits from an HTML element
*
* @alias FrameState
* @constructor
*/
var FrameState = function(creditDisplay) {
/**
* The current mode of the scene.
* @type {SceneMode}
* @default {@link SceneMode.SCENE3D}
*/
this.mode = SceneMode.SCENE3D;
/**
* The current morph transition time between 2D/Columbus View and 3D,
* with 0.0 being 2D or Columbus View and 1.0 being 3D.
*
* @type {Number}
* @default {@link SceneMode.SCENE3D.morphTime}
*/
this.morphTime = SceneMode.SCENE3D.morphTime;
/**
* The current frame number.
*
* @type {Number}
* @default 0
*/
this.frameNumber = 0;
/**
* The scene's current time.
*
* @type {JulianDate}
* @default undefined
*/
this.time = undefined;
this.scene2D = {
/**
* The projection to use in 2D mode.
* @default undefined
*/
projection : undefined
};
/**
* The current camera.
* @type {Camera}
* @default undefined
*/
this.camera = undefined;
/**
* The culling volume.
* @type {CullingVolume}
* @default undefined
*/
this.cullingVolume = undefined;
/**
* The current occluder.
* @type {Occluder}
* @default undefined
*/
this.occluder = undefined;
this.passes = {
/**
* <code>true</code> if the primitive should update for a color pass, <code>false</code> otherwise.
* @type {Boolean}
* @default false
*/
color : false,
/**
* <code>true</code> if the primitive should update for a picking pass, <code>false</code> otherwise.
* @type {Boolean}
* @default false
*/
pick : false,
/**
* <code>true</code> if the primitive should update for an overlay pass, <code>false</code> otherwise.
* @type {Boolean}
* @default false
*/
overlay : false
};
/**
* The credit display.
* @type {CreditDisplay}
*/
this.creditDisplay = creditDisplay;
/**
* An array of {@link Event} instances to raise at the end of the frame.
* This allows queueing up events in <code>update</code> functions and
* firing them at a time when the subscribers are free to change the
* scene state, e.g., manipulate the camera, instead of firing events
* directly in <code>update</code> functions.
*
* @type {Array}
* @default []
*/
this.events = [];
};
return FrameState;
});