cesium 0.22.0 → 0.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/Cesium.js +5 -2
- data/app/assets/javascripts/Core/Cartesian2.js +58 -0
- data/app/assets/javascripts/Core/Cartesian3.js +67 -7
- data/app/assets/javascripts/Core/Cartesian4.js +63 -0
- data/app/assets/javascripts/Core/CatmullRomSpline.js +183 -163
- data/app/assets/javascripts/Core/CorridorGeometry.js +2 -2
- data/app/assets/javascripts/Core/Ellipsoid.js +16 -0
- data/app/assets/javascripts/Core/ExtentGeometry.js +9 -2
- data/app/assets/javascripts/Core/ExtentOutlineGeometry.js +2 -2
- data/app/assets/javascripts/Core/GeometryPipeline.js +23 -23
- data/app/assets/javascripts/Core/HermiteSpline.js +260 -155
- data/app/assets/javascripts/Core/IndexDatatype.js +43 -34
- data/app/assets/javascripts/Core/LinearSpline.js +118 -0
- data/app/assets/javascripts/Core/Math.js +34 -3
- data/app/assets/javascripts/Core/Matrix2.js +26 -0
- data/app/assets/javascripts/Core/Matrix3.js +98 -0
- data/app/assets/javascripts/Core/Matrix4.js +42 -0
- data/app/assets/javascripts/Core/ObjectOrientedBoundingBox.js +396 -0
- data/app/assets/javascripts/Core/PolygonGeometry.js +87 -47
- data/app/assets/javascripts/Core/PolygonGeometryLibrary.js +20 -17
- data/app/assets/javascripts/Core/PolygonOutlineGeometry.js +68 -40
- data/app/assets/javascripts/Core/PolygonPipeline.js +19 -9
- data/app/assets/javascripts/Core/PrimitiveType.js +33 -36
- data/app/assets/javascripts/Core/Quaternion.js +147 -1
- data/app/assets/javascripts/Core/QuaternionSpline.js +160 -0
- data/app/assets/javascripts/Core/Spline.js +121 -0
- data/app/assets/javascripts/Core/Transforms.js +0 -2
- data/app/assets/javascripts/Core/loadArrayBuffer.js +5 -1
- data/app/assets/javascripts/Core/loadBlob.js +5 -1
- data/app/assets/javascripts/Core/loadText.js +4 -1
- data/app/assets/javascripts/Core/loadWithXhr.js +30 -14
- data/app/assets/javascripts/DynamicScene/PolylineOutlineMaterialProperty.js +2 -2
- data/app/assets/javascripts/Renderer/AutomaticUniforms.js +41 -41
- data/app/assets/javascripts/Renderer/Context.js +171 -201
- data/app/assets/javascripts/Renderer/CubeMapFace.js +2 -2
- data/app/assets/javascripts/Renderer/DrawCommand.js +2 -2
- data/app/assets/javascripts/Renderer/PixelFormat.js +22 -28
- data/app/assets/javascripts/Renderer/ShaderProgram.js +65 -46
- data/app/assets/javascripts/Renderer/Texture.js +1 -1
- data/app/assets/javascripts/Renderer/TextureMagnificationFilter.js +7 -9
- data/app/assets/javascripts/Renderer/TextureMinificationFilter.js +19 -25
- data/app/assets/javascripts/Renderer/TextureWrap.js +11 -13
- data/app/assets/javascripts/Renderer/UniformDatatype.js +29 -29
- data/app/assets/javascripts/Renderer/VertexArray.js +43 -35
- data/app/assets/javascripts/Scene/ArcGisMapServerImageryProvider.js +1 -2
- data/app/assets/javascripts/Scene/BillboardCollection.js +10 -1
- data/app/assets/javascripts/Scene/CameraFlightPath.js +58 -101
- data/app/assets/javascripts/Scene/CentralBody.js +1 -4
- data/app/assets/javascripts/Scene/CentralBodySurface.js +1 -2
- data/app/assets/javascripts/Scene/CesiumTerrainProvider.js +1 -2
- data/app/assets/javascripts/Scene/CustomSensorVolume.js +17 -3
- data/app/assets/javascripts/Scene/EllipsoidPrimitive.js +20 -5
- data/app/assets/javascripts/Scene/EllipsoidSurfaceAppearance.js +1 -2
- data/app/assets/javascripts/Scene/FrameState.js +1 -3
- data/app/assets/javascripts/Scene/GoogleEarthImageryProvider.js +2 -5
- data/app/assets/javascripts/Scene/OpenStreetMapImageryProvider.js +1 -2
- data/app/assets/javascripts/Scene/OrthographicFrustum.js +1 -2
- data/app/assets/javascripts/Scene/PerspectiveOffCenterFrustum.js +1 -2
- data/app/assets/javascripts/Scene/Polygon.js +1 -3
- data/app/assets/javascripts/Scene/Polyline.js +5 -2
- data/app/assets/javascripts/Scene/PolylineCollection.js +4 -6
- data/app/assets/javascripts/Scene/Primitive.js +19 -13
- data/app/assets/javascripts/Scene/PrimitivePipeline.js +1 -1
- data/app/assets/javascripts/Scene/Scene.js +7 -10
- data/app/assets/javascripts/Scene/SceneTransforms.js +1 -3
- data/app/assets/javascripts/Scene/SceneTransitioner.js +11 -11
- data/app/assets/javascripts/Scene/SingleTileImageryProvider.js +1 -2
- data/app/assets/javascripts/Scene/TexturePool.js +1 -1
- data/app/assets/javascripts/Scene/TileMapServiceImageryProvider.js +1 -2
- data/app/assets/javascripts/Scene/VRTheWorldTerrainProvider.js +1 -2
- data/app/assets/javascripts/Scene/ViewportQuad.js +1 -3
- data/app/assets/javascripts/Scene/WebMapServiceImageryProvider.js +1 -2
- data/app/assets/javascripts/ThirdParty/knockout-3.0.0.js +6 -3
- data/app/assets/javascripts/Widgets/CesiumWidget/CesiumWidget.js +4 -3
- data/app/assets/javascripts/Widgets/SceneModePicker/SceneModePickerViewModel.js +1 -1
- data/app/assets/javascripts/Widgets/Viewer/Viewer.js +5 -5
- data/app/assets/javascripts/Widgets/Viewer/viewerDragDropMixin.js +13 -13
- data/app/assets/javascripts/Widgets/Viewer/viewerDynamicObjectMixin.js +6 -6
- data/app/assets/javascripts/Widgets/widgets.css +1 -1
- data/lib/cesium/version.rb +1 -1
- metadata +6 -3
- data/app/assets/javascripts/Core/OrientationInterpolator.js +0 -106
@@ -1,5 +1,5 @@
|
|
1
1
|
/*global define*/
|
2
|
-
define(
|
2
|
+
define(function() {
|
3
3
|
"use strict";
|
4
4
|
|
5
5
|
/**
|
@@ -9,31 +9,29 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
9
9
|
*/
|
10
10
|
var TextureWrap = {
|
11
11
|
/**
|
12
|
-
*
|
12
|
+
* 0x812F. Clamps texture coordinates to the normalized range [0, 1].
|
13
13
|
*
|
14
|
-
* @type {
|
14
|
+
* @type {Number}
|
15
15
|
* @constant
|
16
|
-
* @default 0x812F
|
17
16
|
*/
|
18
|
-
CLAMP_TO_EDGE :
|
17
|
+
CLAMP_TO_EDGE : 0x812F,
|
19
18
|
|
20
19
|
/**
|
21
|
-
*
|
20
|
+
* 0x2901. Repeats texture coordinates outside the normalized range [0, 1] by ignoring the integer part.
|
22
21
|
*
|
23
|
-
* @type {
|
22
|
+
* @type {Number}
|
24
23
|
* @constant
|
25
|
-
* @default 0x2901
|
26
24
|
*/
|
27
|
-
REPEAT :
|
25
|
+
REPEAT : 0x2901,
|
28
26
|
|
29
27
|
/**
|
30
|
-
*
|
28
|
+
* 0x8370. Mirror repeats texture coordinates outside the normalized range [0, 1], using the
|
29
|
+
* integer part of the texture coordinate if it is even, or 1.0 minus the fractional part if it is odd.
|
31
30
|
*
|
32
|
-
* @type {
|
31
|
+
* @type {Number}
|
33
32
|
* @constant
|
34
|
-
* @default 0x8370
|
35
33
|
*/
|
36
|
-
MIRRORED_REPEAT :
|
34
|
+
MIRRORED_REPEAT : 0x8370,
|
37
35
|
|
38
36
|
/**
|
39
37
|
* DOC_TBA
|
@@ -20,7 +20,7 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
20
20
|
getGLSL : function() {
|
21
21
|
return 'float';
|
22
22
|
}
|
23
|
-
}),
|
23
|
+
}),
|
24
24
|
|
25
25
|
/**
|
26
26
|
* A <code>vec2</code> uniform: a two-component floating-point vector.
|
@@ -29,11 +29,11 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
29
29
|
* @constant
|
30
30
|
* @default 0x8B50
|
31
31
|
*/
|
32
|
-
|
32
|
+
FLOAT_VEC2 : new Enumeration(0x8B50, 'FLOAT_VEC2', {
|
33
33
|
getGLSL : function() {
|
34
34
|
return 'vec2';
|
35
35
|
}
|
36
|
-
}),
|
36
|
+
}),
|
37
37
|
|
38
38
|
/**
|
39
39
|
* A <code>vec3</code> uniform: a three-component floating-point vector.
|
@@ -42,11 +42,11 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
42
42
|
* @constant
|
43
43
|
* @default 0x8B51
|
44
44
|
*/
|
45
|
-
|
45
|
+
FLOAT_VEC3 : new Enumeration(0x8B51, 'FLOAT_VEC3', {
|
46
46
|
getGLSL : function() {
|
47
47
|
return 'vec3';
|
48
48
|
}
|
49
|
-
}),
|
49
|
+
}),
|
50
50
|
|
51
51
|
/**
|
52
52
|
* A <code>vec4</code> uniform: a four-component floating-point vector.
|
@@ -55,11 +55,11 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
55
55
|
* @constant
|
56
56
|
* @default 0x8B52
|
57
57
|
*/
|
58
|
-
|
58
|
+
FLOAT_VEC4 : new Enumeration(0x8B52, 'FLOAT_VEC4', {
|
59
59
|
getGLSL : function() {
|
60
60
|
return 'vec4';
|
61
61
|
}
|
62
|
-
}),
|
62
|
+
}),
|
63
63
|
|
64
64
|
/**
|
65
65
|
* An <code>int</code> uniform.
|
@@ -72,7 +72,7 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
72
72
|
getGLSL : function() {
|
73
73
|
return 'int';
|
74
74
|
}
|
75
|
-
}),
|
75
|
+
}),
|
76
76
|
|
77
77
|
/**
|
78
78
|
* An <code>ivec2</code> uniform: a two-component integer vector.
|
@@ -81,11 +81,11 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
81
81
|
* @constant
|
82
82
|
* @default 0x8B53
|
83
83
|
*/
|
84
|
-
|
84
|
+
INT_VEC2 : new Enumeration(0x8B53, 'INT_VEC2', {
|
85
85
|
getGLSL : function() {
|
86
86
|
return 'ivec2';
|
87
87
|
}
|
88
|
-
}),
|
88
|
+
}),
|
89
89
|
|
90
90
|
/**
|
91
91
|
* An <code>ivec3</code> uniform: a three-component integer vector.
|
@@ -94,11 +94,11 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
94
94
|
* @constant
|
95
95
|
* @default 0x8B54
|
96
96
|
*/
|
97
|
-
|
97
|
+
INT_VEC3 : new Enumeration(0x8B54, 'INT_VEC3', {
|
98
98
|
getGLSL : function() {
|
99
99
|
return 'ivec3';
|
100
100
|
}
|
101
|
-
}),
|
101
|
+
}),
|
102
102
|
|
103
103
|
/**
|
104
104
|
* An <code>ivec4</code> uniform: a four-component integer vector.
|
@@ -107,11 +107,11 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
107
107
|
* @constant
|
108
108
|
* @default 0x8B55
|
109
109
|
*/
|
110
|
-
|
110
|
+
INT_VEC4 : new Enumeration(0x8B55, 'INT_VEC4', {
|
111
111
|
getGLSL : function() {
|
112
112
|
return 'ivec4';
|
113
113
|
}
|
114
|
-
}),
|
114
|
+
}),
|
115
115
|
|
116
116
|
/**
|
117
117
|
* A <code>bool</code> uniform.
|
@@ -124,7 +124,7 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
124
124
|
getGLSL : function() {
|
125
125
|
return 'bool';
|
126
126
|
}
|
127
|
-
}),
|
127
|
+
}),
|
128
128
|
|
129
129
|
/**
|
130
130
|
* A <code>bvec2</code> uniform: a two-component boolean vector.
|
@@ -133,11 +133,11 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
133
133
|
* @constant
|
134
134
|
* @default 0x8B57
|
135
135
|
*/
|
136
|
-
|
136
|
+
BOOL_VEC2 : new Enumeration(0x8B57, 'BOOL_VEC2', {
|
137
137
|
getGLSL : function() {
|
138
138
|
return 'bvec2';
|
139
139
|
}
|
140
|
-
}),
|
140
|
+
}),
|
141
141
|
|
142
142
|
/**
|
143
143
|
* A <code>bvec3</code> uniform: a three-component boolean vector.
|
@@ -146,11 +146,11 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
146
146
|
* @constant
|
147
147
|
* @default 0x8B58
|
148
148
|
*/
|
149
|
-
|
149
|
+
BOOL_VEC3 : new Enumeration(0x8B58, 'BOOL_VEC3', {
|
150
150
|
getGLSL : function() {
|
151
151
|
return 'bvec3';
|
152
152
|
}
|
153
|
-
}),
|
153
|
+
}),
|
154
154
|
|
155
155
|
/**
|
156
156
|
* A <code>bvec4</code> uniform: a four-component boolean vector.
|
@@ -159,11 +159,11 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
159
159
|
* @constant
|
160
160
|
* @default 0x8B59
|
161
161
|
*/
|
162
|
-
|
162
|
+
BOOL_VEC4 : new Enumeration(0x8B59, 'BOOL_VEC4', {
|
163
163
|
getGLSL : function() {
|
164
164
|
return 'bvec4';
|
165
165
|
}
|
166
|
-
}),
|
166
|
+
}),
|
167
167
|
|
168
168
|
/**
|
169
169
|
* An <code>mat2</code> uniform: a 2x2 floating-point matrix.
|
@@ -172,11 +172,11 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
172
172
|
* @constant
|
173
173
|
* @default 0x8B5A
|
174
174
|
*/
|
175
|
-
|
175
|
+
FLOAT_MAT2 : new Enumeration(0x8B5A, 'FLOAT_MAT2', {
|
176
176
|
getGLSL : function() {
|
177
177
|
return 'mat2';
|
178
178
|
}
|
179
|
-
}),
|
179
|
+
}),
|
180
180
|
|
181
181
|
/**
|
182
182
|
* An <code>mat3</code> uniform: a 3x3 floating-point matrix.
|
@@ -185,11 +185,11 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
185
185
|
* @constant
|
186
186
|
* @default 0x8B5B
|
187
187
|
*/
|
188
|
-
|
188
|
+
FLOAT_MAT3 : new Enumeration(0x8B5B, 'FLOAT_MAT3', {
|
189
189
|
getGLSL : function() {
|
190
190
|
return 'mat3';
|
191
191
|
}
|
192
|
-
}),
|
192
|
+
}),
|
193
193
|
|
194
194
|
/**
|
195
195
|
* An <code>mat4</code> uniform: a 4x4 floating-point matrix.
|
@@ -198,11 +198,11 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
198
198
|
* @constant
|
199
199
|
* @default 0x8B5C
|
200
200
|
*/
|
201
|
-
|
201
|
+
FLOAT_MAT4 : new Enumeration(0x8B5C, 'FLOAT_MAT4', {
|
202
202
|
getGLSL : function() {
|
203
203
|
return 'mat4';
|
204
204
|
}
|
205
|
-
}),
|
205
|
+
}),
|
206
206
|
|
207
207
|
/**
|
208
208
|
* A <code>sampler2D</code> uniform: an opaque type to access 2D textures.
|
@@ -215,7 +215,7 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
215
215
|
getGLSL : function() {
|
216
216
|
return 'sampler2D';
|
217
217
|
}
|
218
|
-
}),
|
218
|
+
}),
|
219
219
|
|
220
220
|
/**
|
221
221
|
* A <code>samplerCube</code> uniform: an opaque type to access cube-map textures.
|
@@ -228,7 +228,7 @@ define(['Core/Enumeration'], function(Enumeration) {
|
|
228
228
|
getGLSL : function() {
|
229
229
|
return 'samplerCube';
|
230
230
|
}
|
231
|
-
})
|
231
|
+
})
|
232
232
|
};
|
233
233
|
|
234
234
|
return UniformDatatype;
|
@@ -8,11 +8,14 @@ define(['Core/defaultValue', 'Core/defined', 'Core/destroyObject', 'Core/Develop
|
|
8
8
|
"use strict";
|
9
9
|
|
10
10
|
function addAttribute(attributes, attribute, index) {
|
11
|
-
|
11
|
+
var hasVertexBuffer = defined(attribute.vertexBuffer);
|
12
|
+
var hasValue = defined(attribute.value);
|
13
|
+
|
14
|
+
if (!hasVertexBuffer && !hasValue) {
|
12
15
|
throw new DeveloperError('attribute must have a vertexBuffer or a value.');
|
13
16
|
}
|
14
17
|
|
15
|
-
if (
|
18
|
+
if (hasVertexBuffer && hasValue) {
|
16
19
|
throw new DeveloperError('attribute cannot have both a vertexBuffer and a value. It must have either a vertexBuffer property defining per-vertex data or a value property defining data for all vertices.');
|
17
20
|
}
|
18
21
|
|
@@ -22,21 +25,18 @@ define(['Core/defaultValue', 'Core/defined', 'Core/destroyObject', 'Core/Develop
|
|
22
25
|
(componentsPerAttribute !== 2) &&
|
23
26
|
(componentsPerAttribute !== 3) &&
|
24
27
|
(componentsPerAttribute !== 4)) {
|
25
|
-
if (
|
28
|
+
if (hasValue) {
|
26
29
|
throw new DeveloperError('attribute.value.length must be in the range [1, 4].');
|
27
30
|
}
|
28
31
|
|
29
32
|
throw new DeveloperError('attribute.componentsPerAttribute must be in the range [1, 4].');
|
30
33
|
}
|
31
34
|
|
32
|
-
if (attribute.componentDatatype) {
|
33
|
-
|
34
|
-
if (!ComponentDatatype.validate(datatype)) {
|
35
|
-
throw new DeveloperError('attribute must have a valid componentDatatype or not specify it.');
|
36
|
-
}
|
35
|
+
if (defined(attribute.componentDatatype) && !ComponentDatatype.validate(attribute.componentDatatype)) {
|
36
|
+
throw new DeveloperError('attribute must have a valid componentDatatype or not specify it.');
|
37
37
|
}
|
38
38
|
|
39
|
-
if (attribute.strideInBytes && (attribute.strideInBytes > 255)) {
|
39
|
+
if (defined(attribute.strideInBytes) && (attribute.strideInBytes > 255)) {
|
40
40
|
// WebGL limit. Not in GL ES.
|
41
41
|
throw new DeveloperError('attribute must have a strideInBytes less than or equal to 255 or not specify it.');
|
42
42
|
}
|
@@ -46,15 +46,15 @@ define(['Core/defaultValue', 'Core/defined', 'Core/destroyObject', 'Core/Develop
|
|
46
46
|
index : defaultValue(attribute.index, index),
|
47
47
|
enabled : defaultValue(attribute.enabled, true),
|
48
48
|
vertexBuffer : attribute.vertexBuffer,
|
49
|
-
value :
|
49
|
+
value : hasValue ? attribute.value.slice(0) : undefined,
|
50
50
|
componentsPerAttribute : componentsPerAttribute,
|
51
|
-
componentDatatype : attribute.componentDatatype
|
52
|
-
normalize : attribute.normalize
|
53
|
-
offsetInBytes : attribute.offsetInBytes
|
54
|
-
strideInBytes : attribute.strideInBytes
|
51
|
+
componentDatatype : defaultValue(attribute.componentDatatype, ComponentDatatype.FLOAT),
|
52
|
+
normalize : defaultValue(attribute.normalize, false),
|
53
|
+
offsetInBytes : defaultValue(attribute.offsetInBytes, 0),
|
54
|
+
strideInBytes : defaultValue(attribute.strideInBytes, 0)
|
55
55
|
};
|
56
56
|
|
57
|
-
if (
|
57
|
+
if (hasVertexBuffer) {
|
58
58
|
// Common case: vertex buffer for per-vertex data
|
59
59
|
attr.vertexAttrib = function(gl) {
|
60
60
|
gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer._getBuffer());
|
@@ -117,15 +117,32 @@ define(['Core/defaultValue', 'Core/defined', 'Core/destroyObject', 'Core/Develop
|
|
117
117
|
*
|
118
118
|
* @internalConstructor
|
119
119
|
*
|
120
|
+
* @exception {DeveloperError} attributes is required.
|
121
|
+
*
|
120
122
|
* @see {@link Context#createVertexArray}
|
121
123
|
* @see {@link Context#createVertexArrayFromGeometry}
|
122
124
|
*/
|
123
125
|
var VertexArray = function(gl, vertexArrayObject, attributes, indexBuffer) {
|
126
|
+
if (!defined(attributes)) {
|
127
|
+
throw new DeveloperError('attributes is required.');
|
128
|
+
}
|
129
|
+
|
130
|
+
var i;
|
124
131
|
var vaAttributes = [];
|
132
|
+
var numberOfVertices = 1; // if every attribute is backed by a single value
|
125
133
|
|
126
|
-
|
127
|
-
|
128
|
-
|
134
|
+
for (i = 0; i < attributes.length; ++i) {
|
135
|
+
addAttribute(vaAttributes, attributes[i], i);
|
136
|
+
}
|
137
|
+
|
138
|
+
for (i = 0; i < vaAttributes.length; ++i) {
|
139
|
+
var attribute = vaAttributes[i];
|
140
|
+
|
141
|
+
if (defined(attribute.vertexBuffer)) {
|
142
|
+
// This assumes that each vertex buffer in the vertex array has the same number of vertices.
|
143
|
+
var bytes = attribute.strideInBytes || (attribute.componentsPerAttribute * attribute.componentDatatype.sizeInBytes);
|
144
|
+
numberOfVertices = attribute.vertexBuffer.getSizeInBytes() / bytes;
|
145
|
+
break;
|
129
146
|
}
|
130
147
|
}
|
131
148
|
|
@@ -150,6 +167,12 @@ define(['Core/defaultValue', 'Core/defined', 'Core/destroyObject', 'Core/Develop
|
|
150
167
|
vertexArrayObject.bindVertexArrayOES(null);
|
151
168
|
}
|
152
169
|
|
170
|
+
/**
|
171
|
+
* @readonly
|
172
|
+
* @private
|
173
|
+
*/
|
174
|
+
this.numberOfVertices = numberOfVertices;
|
175
|
+
|
153
176
|
this._gl = gl;
|
154
177
|
this._vaoExtension = vertexArrayObject;
|
155
178
|
this._vao = vao;
|
@@ -225,21 +248,6 @@ define(['Core/defaultValue', 'Core/defined', 'Core/destroyObject', 'Core/Develop
|
|
225
248
|
}
|
226
249
|
};
|
227
250
|
|
228
|
-
/**
|
229
|
-
* This assumes that each vertex buffer in the vertex array has the same number of vertices.
|
230
|
-
* @private
|
231
|
-
*/
|
232
|
-
VertexArray.prototype._getNumberOfVertices = function() {
|
233
|
-
if (this._attributes.length > 0) {
|
234
|
-
var attribute = this._attributes[0];
|
235
|
-
var bytes = attribute.strideInBytes || (attribute.componentsPerAttribute * attribute.componentDatatype.sizeInBytes);
|
236
|
-
|
237
|
-
return attribute.vertexBuffer.getSizeInBytes() / bytes;
|
238
|
-
}
|
239
|
-
|
240
|
-
return 0;
|
241
|
-
};
|
242
|
-
|
243
251
|
/**
|
244
252
|
* Returns true if this object was destroyed; otherwise, false.
|
245
253
|
* <br /><br />
|
@@ -297,13 +305,13 @@ define(['Core/defaultValue', 'Core/defined', 'Core/destroyObject', 'Core/Develop
|
|
297
305
|
var attributes = this._attributes;
|
298
306
|
for ( var i = 0; i < attributes.length; ++i) {
|
299
307
|
var vertexBuffer = attributes[i].vertexBuffer;
|
300
|
-
if (vertexBuffer && !vertexBuffer.isDestroyed() && vertexBuffer.getVertexArrayDestroyable()) {
|
308
|
+
if (defined(vertexBuffer) && !vertexBuffer.isDestroyed() && vertexBuffer.getVertexArrayDestroyable()) {
|
301
309
|
vertexBuffer.destroy();
|
302
310
|
}
|
303
311
|
}
|
304
312
|
|
305
313
|
var indexBuffer = this._indexBuffer;
|
306
|
-
if (indexBuffer && !indexBuffer.isDestroyed() && indexBuffer.getVertexArrayDestroyable()) {
|
314
|
+
if (defined(indexBuffer) && !indexBuffer.isDestroyed() && indexBuffer.getVertexArrayDestroyable()) {
|
307
315
|
indexBuffer.destroy();
|
308
316
|
}
|
309
317
|
|
@@ -1,9 +1,8 @@
|
|
1
1
|
/*global define*/
|
2
|
-
define(['Core/defaultValue', 'Core/defined', 'Core/jsonp', 'Core/
|
2
|
+
define(['Core/defaultValue', 'Core/defined', 'Core/jsonp', 'Core/Cartesian2', 'Core/DeveloperError', 'Core/Event', 'Scene/DiscardMissingTileImagePolicy', 'Scene/GeographicTilingScheme', 'Scene/ImageryProvider', 'Scene/TileProviderError', 'Scene/WebMercatorTilingScheme', 'Scene/Credit', 'ThirdParty/when'], function(
|
3
3
|
defaultValue,
|
4
4
|
defined,
|
5
5
|
jsonp,
|
6
|
-
writeTextToCanvas,
|
7
6
|
Cartesian2,
|
8
7
|
DeveloperError,
|
9
8
|
Event,
|
@@ -151,8 +151,10 @@ define(['Core/defined', 'Core/DeveloperError', 'Core/Color', 'Core/defaultValue'
|
|
151
151
|
this._allHorizontalCenter = true;
|
152
152
|
|
153
153
|
this._baseVolume = new BoundingSphere();
|
154
|
+
this._baseVolumeWC = new BoundingSphere();
|
154
155
|
this._baseVolume2D = new BoundingSphere();
|
155
156
|
this._boundingVolume = new BoundingSphere();
|
157
|
+
this._boundingVolumeDirty = false;
|
156
158
|
|
157
159
|
this._colorCommands = [];
|
158
160
|
this._pickCommands = [];
|
@@ -707,6 +709,7 @@ define(['Core/defined', 'Core/DeveloperError', 'Core/Color', 'Core/defaultValue'
|
|
707
709
|
|
708
710
|
if (billboardCollection._mode === SceneMode.SCENE3D) {
|
709
711
|
billboardCollection._baseVolume.expand(position, billboardCollection._baseVolume);
|
712
|
+
billboardCollection._boundingVolumeDirty = true;
|
710
713
|
}
|
711
714
|
|
712
715
|
EncodedCartesian3.fromCartesian(position, writePositionScratch);
|
@@ -943,6 +946,7 @@ define(['Core/defined', 'Core/DeveloperError', 'Core/Color', 'Core/defaultValue'
|
|
943
946
|
var boundingVolume;
|
944
947
|
if (frameState.mode === SceneMode.SCENE3D) {
|
945
948
|
boundingVolume = billboardCollection._baseVolume;
|
949
|
+
billboardCollection._boundingVolumeDirty = true;
|
946
950
|
} else {
|
947
951
|
boundingVolume = billboardCollection._baseVolume2D;
|
948
952
|
}
|
@@ -1173,11 +1177,16 @@ define(['Core/defined', 'Core/DeveloperError', 'Core/Color', 'Core/defaultValue'
|
|
1173
1177
|
return;
|
1174
1178
|
}
|
1175
1179
|
|
1180
|
+
if (this._boundingVolumeDirty) {
|
1181
|
+
this._boundingVolumeDirty = false;
|
1182
|
+
BoundingSphere.transform(this._baseVolume, this.modelMatrix, this._baseVolumeWC);
|
1183
|
+
}
|
1184
|
+
|
1176
1185
|
var boundingVolume;
|
1177
1186
|
var modelMatrix = Matrix4.IDENTITY;
|
1178
1187
|
if (frameState.mode === SceneMode.SCENE3D) {
|
1179
1188
|
modelMatrix = this.modelMatrix;
|
1180
|
-
boundingVolume = BoundingSphere.clone(this.
|
1189
|
+
boundingVolume = BoundingSphere.clone(this._baseVolumeWC, this._boundingVolume);
|
1181
1190
|
} else {
|
1182
1191
|
boundingVolume = BoundingSphere.clone(this._baseVolume2D, this._boundingVolume);
|
1183
1192
|
}
|