@cesium/engine 18.3.1-ion.1 → 20.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Build/ThirdParty/Workers/pako_deflate.min.js +3 -3
- package/Build/ThirdParty/Workers/pako_inflate.min.js +3 -3
- package/Build/ThirdParty/Workers/z-worker-pako.js +80 -89
- package/Build/Workers/{chunk-G7F2CKBW.js → chunk-22LUVCO3.js} +2 -2
- package/Build/Workers/{chunk-AIBIEA2N.js → chunk-3BO4XBWM.js} +12 -12
- package/Build/Workers/{chunk-LPLMZKZS.js → chunk-3SQPZVG4.js} +1 -1
- package/Build/Workers/{chunk-KQ7OYXT6.js → chunk-4O5SZ2RE.js} +3 -3
- package/Build/Workers/{chunk-EF747DYS.js → chunk-4UIKSIEZ.js} +9 -9
- package/Build/Workers/{chunk-LDFRBRJO.js → chunk-5FZEM66Y.js} +12 -12
- package/Build/Workers/{chunk-Z7UO3S7L.js → chunk-5G56VVL3.js} +10 -10
- package/Build/Workers/{chunk-KUVAFSVU.js → chunk-5GKRDXYJ.js} +12 -12
- package/Build/Workers/{chunk-GIRJEZHU.js → chunk-5W4EBNO3.js} +14 -14
- package/Build/Workers/{chunk-XMFKOU5X.js → chunk-67RLCIDP.js} +7 -7
- package/Build/Workers/{chunk-ACOAKTBU.js → chunk-74VODBWB.js} +4 -4
- package/Build/Workers/{chunk-QTFE5TBC.js → chunk-7HOD2LGH.js} +10 -10
- package/Build/Workers/{chunk-GOSJZP7N.js → chunk-D25QOWHR.js} +1 -1
- package/Build/Workers/{chunk-5UWLMG6V.js → chunk-D63DK275.js} +7 -7
- package/Build/Workers/{chunk-4JMMKZ4N.js → chunk-EHOOC4HJ.js} +5 -5
- package/Build/Workers/{chunk-PFTYXAVG.js → chunk-ELI5ZYDR.js} +5 -5
- package/Build/Workers/{chunk-RQRKALHB.js → chunk-FGF4ETPY.js} +9 -9
- package/Build/Workers/{chunk-YPMSP4IH.js → chunk-FKWL63D4.js} +5 -5
- package/Build/Workers/{chunk-IC5M3JRR.js → chunk-FLH3ZH2X.js} +4 -4
- package/Build/Workers/{chunk-5DF22LFV.js → chunk-HDOFAYEE.js} +16 -16
- package/Build/Workers/{chunk-37V6UO2J.js → chunk-HHUHFFYN.js} +5 -5
- package/Build/Workers/{chunk-GSLSXQGX.js → chunk-IHUXLSNT.js} +5 -4
- package/Build/Workers/{chunk-K4HUWRWA.js → chunk-IJM2HVTV.js} +1 -1
- package/Build/Workers/{chunk-AKLRSDAY.js → chunk-IPXMWP5Z.js} +6 -6
- package/Build/Workers/{chunk-G6I5XO4E.js → chunk-IWKYS6RV.js} +6 -6
- package/Build/Workers/{chunk-RVQ7LHW3.js → chunk-JMX3P7DE.js} +8 -8
- package/Build/Workers/{chunk-OQNQNBEM.js → chunk-JQSMAZAT.js} +9 -9
- package/Build/Workers/{chunk-GGNZKIG3.js → chunk-JRLT2FQV.js} +8 -8
- package/Build/Workers/{chunk-GK5WVMVN.js → chunk-KRXL3KZL.js} +13 -13
- package/Build/Workers/{chunk-OVXYMPQ7.js → chunk-KWB7PPVO.js} +2 -2
- package/Build/Workers/{chunk-DG4CHTQN.js → chunk-M62PWLGC.js} +16 -16
- package/Build/Workers/{chunk-T3UE5LOS.js → chunk-MSLO3MQF.js} +5 -5
- package/Build/Workers/{chunk-ZGH3R3CO.js → chunk-MZZK44UI.js} +6 -6
- package/Build/Workers/{chunk-3T2QV5NN.js → chunk-NB2NKFJL.js} +6 -6
- package/Build/Workers/{chunk-W2EMENZQ.js → chunk-NJYFQE5B.js} +1 -1
- package/Build/Workers/{chunk-GG2NLIC6.js → chunk-O2O4FYNI.js} +2 -2
- package/Build/Workers/{chunk-6HT3OW6S.js → chunk-PZEPLREA.js} +2 -2
- package/Build/Workers/{chunk-MYMBUYST.js → chunk-S2RSJJQI.js} +4 -4
- package/Build/Workers/{chunk-QBRCP474.js → chunk-S3UYLP3X.js} +8 -8
- package/Build/Workers/{chunk-JVSY3BGV.js → chunk-TH3P77KJ.js} +5 -5
- package/Build/Workers/{chunk-4HDG7AFU.js → chunk-UGSQJYGE.js} +6 -6
- package/Build/Workers/{chunk-SMVRX64E.js → chunk-UUXOFY6G.js} +12 -12
- package/Build/Workers/{chunk-DPG3EG2U.js → chunk-V36BVRDX.js} +11 -11
- package/Build/Workers/{chunk-3HRMP3V7.js → chunk-VJ2DNCFT.js} +4 -4
- package/Build/Workers/{chunk-DH3XQXDD.js → chunk-VQUVJWBK.js} +4 -4
- package/Build/Workers/{chunk-AJANTRVW.js → chunk-VWQWZ7OL.js} +5 -5
- package/Build/Workers/{chunk-XPXBRZXF.js → chunk-VXBNLAG4.js} +7 -7
- package/Build/Workers/{chunk-GXEQK7P4.js → chunk-W3KNMQT2.js} +6 -6
- package/Build/Workers/{chunk-5RUDB5R4.js → chunk-WIGH3CPD.js} +2 -2
- package/Build/Workers/{chunk-GMNXNBM4.js → chunk-XVHLXVN3.js} +1 -1
- package/Build/Workers/{chunk-KSNUH6WJ.js → chunk-YHB3RNF2.js} +4 -4
- package/Build/Workers/{chunk-BTXGNWFF.js → chunk-ZSHDRKLT.js} +4 -4
- package/Build/Workers/combineGeometry.js +21 -21
- package/Build/Workers/createBoxGeometry.js +15 -15
- package/Build/Workers/createBoxOutlineGeometry.js +13 -13
- package/Build/Workers/createCircleGeometry.js +23 -23
- package/Build/Workers/createCircleOutlineGeometry.js +16 -16
- package/Build/Workers/createCoplanarPolygonGeometry.js +30 -30
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +28 -28
- package/Build/Workers/createCorridorGeometry.js +26 -26
- package/Build/Workers/createCorridorOutlineGeometry.js +25 -25
- package/Build/Workers/createCylinderGeometry.js +17 -17
- package/Build/Workers/createCylinderOutlineGeometry.js +15 -15
- package/Build/Workers/createEllipseGeometry.js +23 -23
- package/Build/Workers/createEllipseOutlineGeometry.js +16 -16
- package/Build/Workers/createEllipsoidGeometry.js +16 -16
- package/Build/Workers/createEllipsoidOutlineGeometry.js +15 -15
- package/Build/Workers/createFrustumGeometry.js +15 -15
- package/Build/Workers/createFrustumOutlineGeometry.js +15 -15
- package/Build/Workers/createGeometry.js +21 -21
- package/Build/Workers/createGroundPolylineGeometry.js +19 -19
- package/Build/Workers/createPlaneGeometry.js +13 -13
- package/Build/Workers/createPlaneOutlineGeometry.js +12 -12
- package/Build/Workers/createPolygonGeometry.js +29 -29
- package/Build/Workers/createPolygonOutlineGeometry.js +27 -27
- package/Build/Workers/createPolylineGeometry.js +22 -22
- package/Build/Workers/createPolylineVolumeGeometry.js +28 -28
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +24 -24
- package/Build/Workers/createRectangleGeometry.js +24 -24
- package/Build/Workers/createRectangleOutlineGeometry.js +17 -17
- package/Build/Workers/createSimplePolylineGeometry.js +20 -20
- package/Build/Workers/createSphereGeometry.js +16 -16
- package/Build/Workers/createSphereOutlineGeometry.js +15 -15
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +12 -12
- package/Build/Workers/createVectorTileGeometries.js +21 -21
- package/Build/Workers/createVectorTilePoints.js +11 -11
- package/Build/Workers/createVectorTilePolygons.js +19 -19
- package/Build/Workers/createVectorTilePolylines.js +12 -12
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +19 -19
- package/Build/Workers/createVerticesFromHeightmap.js +25 -25
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +16 -16
- package/Build/Workers/createWallGeometry.js +21 -21
- package/Build/Workers/createWallOutlineGeometry.js +20 -20
- package/Build/Workers/decodeDraco.js +10 -10
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
- package/Build/Workers/decodeI3S.js +9 -9
- package/Build/Workers/gaussianSplatSorter.js +4 -4
- package/Build/Workers/gaussianSplatTextureGenerator.js +4 -4
- package/Build/Workers/transcodeKTX2.js +17 -16
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +19 -19
- package/LICENSE.md +32 -25
- package/Source/Core/Ellipsoid.js +9 -0
- package/Source/Core/ITwinPlatform.js +8 -1
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonResource.js +14 -8
- package/Source/Core/ScreenSpaceEventHandler.js +3 -3
- package/Source/Core/addAllToArray.js +40 -0
- package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +54 -26
- package/Source/Renderer/Context.js +8 -4
- package/Source/Renderer/Renderbuffer.js +4 -2
- package/Source/Renderer/Sampler.js +13 -0
- package/Source/Renderer/ShaderBuilder.js +7 -6
- package/Source/Renderer/SharedContext.js +186 -0
- package/Source/Renderer/Texture.js +4 -5
- package/Source/Renderer/Texture3D.js +17 -7
- package/Source/Scene/ArcGisMapService.js +1 -1
- package/Source/Scene/BillboardCollection.js +1 -1
- package/Source/Scene/BingMapsImageryProvider.js +1 -1
- package/Source/Scene/Cesium3DTileBatchTable.js +6 -4
- package/Source/Scene/Cesium3DTileContentFactory.js +7 -16
- package/Source/Scene/Cesium3DTileStyle.js +4 -3
- package/Source/Scene/Cesium3DTileset.js +2 -2
- package/Source/Scene/ConditionsExpression.js +3 -2
- package/Source/Scene/GaussianSplat3DTileContent.js +253 -9
- package/Source/Scene/GaussianSplatPrimitive.js +167 -15
- package/Source/Scene/GltfLoader.js +23 -4
- package/Source/Scene/GltfPipeline/ForEach.js +7 -7
- package/Source/Scene/GltfPipeline/addDefaults.js +1 -2
- package/Source/Scene/GltfPipeline/addToArray.js +2 -0
- package/Source/Scene/GltfPipeline/findAccessorMinMax.js +1 -1
- package/Source/Scene/GltfPipeline/getComponentReader.js +16 -16
- package/Source/Scene/GltfPipeline/moveTechniqueRenderStates.js +1 -1
- package/Source/Scene/GltfPipeline/moveTechniquesToExtension.js +3 -3
- package/Source/Scene/GltfPipeline/parseGlb.js +1 -1
- package/Source/Scene/GltfPipeline/readAccessorPacked.js +2 -2
- package/Source/Scene/GltfPipeline/removeUnusedElements.js +5 -6
- package/Source/Scene/GltfPipeline/updateAccessorComponentTypes.js +1 -1
- package/Source/Scene/GltfPipeline/updateVersion.js +13 -13
- package/Source/Scene/GltfSpzLoader.js +3 -1
- package/Source/Scene/GltfVertexBufferLoader.js +56 -2
- package/Source/Scene/HeightReference.js +1 -1
- package/Source/Scene/ITwinData.js +49 -25
- package/Source/Scene/ImageBasedLighting.js +6 -2
- package/Source/Scene/ImageryLayer.js +10 -10
- package/Source/Scene/MetadataTableProperty.js +2 -1
- package/Source/Scene/Model/ClassificationModelDrawCommand.js +7 -6
- package/Source/Scene/Model/GeoJsonLoader.js +3 -1
- package/Source/Scene/Model/ImageryConfiguration.js +1 -0
- package/Source/Scene/Model/ImageryPipelineStage.js +8 -2
- package/Source/Scene/Model/InstancingPipelineStage.js +3 -8
- package/Source/Scene/Model/MaterialPipelineStage.js +10 -1
- package/Source/Scene/Model/Model.js +3 -0
- package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +8 -2
- package/Source/Scene/Model/ModelImagery.js +3 -0
- package/Source/Scene/Model/ModelSceneGraph.js +2 -1
- package/Source/Scene/Model/ModelUtility.js +1 -0
- package/Source/Scene/Model/PntsLoader.js +7 -3
- package/Source/Scene/Picking.js +41 -1
- package/Source/Scene/PntsParser.js +6 -3
- package/Source/Scene/Primitive.js +0 -1
- package/Source/Scene/PrimitiveCollection.js +32 -6
- package/Source/Scene/PrimitiveLoadPlan.js +1 -37
- package/Source/Scene/PropertyTable.js +7 -12
- package/Source/Scene/Scene.js +41 -32
- package/Source/Scene/ScreenSpaceCameraController.js +2 -0
- package/Source/Scene/VertexAttributeSemantic.js +4 -2
- package/Source/Scene/WebMapServiceImageryProvider.js +3 -2
- package/Source/Scene/WebMapTileServiceImageryProvider.js +0 -22
- package/Source/Scene/getMeshPrimitives.js +72 -0
- package/Source/Shaders/Builtin/Functions/modelToWindowCoordinates.glsl +2 -1
- package/Source/Shaders/Builtin/Functions/modelToWindowCoordinates.js +2 -1
- package/Source/Shaders/EllipsoidVS.glsl +4 -4
- package/Source/Shaders/EllipsoidVS.js +4 -4
- package/Source/Shaders/FXAA3_11.glsl +2 -0
- package/Source/Shaders/FXAA3_11.js +2 -0
- package/Source/Shaders/GlobeVS.glsl +2 -1
- package/Source/Shaders/GlobeVS.js +2 -1
- package/Source/Shaders/PrimitiveGaussianSplatFS.glsl +5 -5
- package/Source/Shaders/PrimitiveGaussianSplatFS.js +5 -5
- package/Source/Shaders/PrimitiveGaussianSplatVS.glsl +102 -5
- package/Source/Shaders/PrimitiveGaussianSplatVS.js +102 -5
- package/Source/Shaders/SkyAtmosphereVS.glsl +2 -1
- package/Source/Shaders/SkyAtmosphereVS.js +2 -1
- package/Source/ThirdParty/Workers/z-worker-pako.js +1 -1
- package/index.d.ts +191 -54
- package/index.js +93 -90
- package/package.json +4 -4
package/LICENSE.md
CHANGED
|
@@ -305,35 +305,42 @@ https://gist.github.com/banksean/300494
|
|
|
305
305
|
>
|
|
306
306
|
> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
307
307
|
|
|
308
|
-
### NVIDIA GameWorks
|
|
308
|
+
### NVIDIA GameWorks FXAA Shader
|
|
309
309
|
|
|
310
|
-
https://
|
|
310
|
+
Original source (archived): https://archive.org/details/nvidiagame-works-graphics-samples-master
|
|
311
|
+
Fork: https://github.com/lyntel/GraphicsSamples/blob/3d30817ebeeade64fe6a4fc3aa1fe4265c29b6fd/samples/es3-kepler/FXAA/FXAA3_11.h
|
|
311
312
|
|
|
312
|
-
>
|
|
313
|
+
> ----------------------------------------------------------------------------------
|
|
314
|
+
> File: es3-kepler\FXAA/FXAA3_11.h
|
|
315
|
+
> SDK Version: v3.00
|
|
316
|
+
> Email: gameworks@nvidia.com
|
|
317
|
+
> Site: http://developer.nvidia.com/
|
|
313
318
|
>
|
|
314
|
-
>
|
|
319
|
+
> Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved.
|
|
315
320
|
>
|
|
316
|
-
>
|
|
317
|
-
>
|
|
318
|
-
>
|
|
319
|
-
>
|
|
320
|
-
>
|
|
321
|
-
>
|
|
322
|
-
>
|
|
323
|
-
>
|
|
324
|
-
>
|
|
325
|
-
>
|
|
326
|
-
>
|
|
327
|
-
>
|
|
328
|
-
>
|
|
329
|
-
>
|
|
330
|
-
>
|
|
331
|
-
>
|
|
332
|
-
>
|
|
333
|
-
>
|
|
334
|
-
>
|
|
335
|
-
>
|
|
336
|
-
>
|
|
321
|
+
> Redistribution and use in source and binary forms, with or without
|
|
322
|
+
> modification, are permitted provided that the following conditions
|
|
323
|
+
> are met:
|
|
324
|
+
> * Redistributions of source code must retain the above copyright
|
|
325
|
+
> notice, this list of conditions and the following disclaimer.
|
|
326
|
+
> * Redistributions in binary form must reproduce the above copyright
|
|
327
|
+
> notice, this list of conditions and the following disclaimer in the
|
|
328
|
+
> documentation and/or other materials provided with the distribution.
|
|
329
|
+
> * Neither the name of NVIDIA CORPORATION nor the names of its
|
|
330
|
+
> contributors may be used to endorse or promote products derived
|
|
331
|
+
> from this software without specific prior written permission.
|
|
332
|
+
>
|
|
333
|
+
> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
|
|
334
|
+
> EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
335
|
+
> IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
336
|
+
> PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
337
|
+
> CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
338
|
+
> EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
339
|
+
> PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
|
340
|
+
> PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
|
341
|
+
> OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
342
|
+
> (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
343
|
+
> OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
337
344
|
|
|
338
345
|
### jsep
|
|
339
346
|
|
package/Source/Core/Ellipsoid.js
CHANGED
|
@@ -254,6 +254,15 @@ Ellipsoid.MOON = Object.freeze(
|
|
|
254
254
|
),
|
|
255
255
|
);
|
|
256
256
|
|
|
257
|
+
/**
|
|
258
|
+
* An Ellipsoid instance initialized to a sphere with the mean radii of Mars.
|
|
259
|
+
* Source: https://epsg.io/104905
|
|
260
|
+
*
|
|
261
|
+
* @type {Ellipsoid}
|
|
262
|
+
* @constant
|
|
263
|
+
*/
|
|
264
|
+
Ellipsoid.MARS = Object.freeze(new Ellipsoid(3396190.0, 3396190.0, 3376200.0));
|
|
265
|
+
|
|
257
266
|
Ellipsoid._default = Ellipsoid.WGS84;
|
|
258
267
|
Object.defineProperties(Ellipsoid, {
|
|
259
268
|
/**
|
|
@@ -153,13 +153,17 @@ ITwinPlatform.apiEndpoint = new Resource({
|
|
|
153
153
|
* @private
|
|
154
154
|
*
|
|
155
155
|
* @param {string} iModelId iModel id
|
|
156
|
+
* @param {string} [changesetId] The id of the changeset to filter results by. If not provided, exports from the latest available changesets will be returned.
|
|
156
157
|
* @returns {Promise<GetExportsResponse>}
|
|
157
158
|
*
|
|
158
159
|
* @throws {RuntimeError} If the iTwin API request is not successful
|
|
159
160
|
*/
|
|
160
|
-
ITwinPlatform.getExports = async function (iModelId) {
|
|
161
|
+
ITwinPlatform.getExports = async function (iModelId, changesetId) {
|
|
161
162
|
//>>includeStart('debug', pragmas.debug);
|
|
162
163
|
Check.typeOf.string("iModelId", iModelId);
|
|
164
|
+
if (defined(changesetId)) {
|
|
165
|
+
Check.typeOf.string("changesetId", changesetId);
|
|
166
|
+
}
|
|
163
167
|
if (
|
|
164
168
|
!defined(ITwinPlatform.defaultAccessToken) &&
|
|
165
169
|
!defined(ITwinPlatform.defaultShareKey)
|
|
@@ -191,6 +195,9 @@ ITwinPlatform.getExports = async function (iModelId) {
|
|
|
191
195
|
if (typeof CESIUM_VERSION !== "undefined") {
|
|
192
196
|
resource.appendQueryParameters({ clientVersion: CESIUM_VERSION });
|
|
193
197
|
}
|
|
198
|
+
if (defined(changesetId) && changesetId !== "") {
|
|
199
|
+
resource.appendQueryParameters({ changesetId: changesetId });
|
|
200
|
+
}
|
|
194
201
|
|
|
195
202
|
try {
|
|
196
203
|
const response = await resource.fetchJson();
|
package/Source/Core/Ion.js
CHANGED
|
@@ -4,7 +4,7 @@ import Resource from "./Resource.js";
|
|
|
4
4
|
|
|
5
5
|
let defaultTokenCredit;
|
|
6
6
|
const defaultAccessToken =
|
|
7
|
-
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
|
|
7
|
+
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI2NTEwZTU2Yi0wOGEyLTQyZjgtOTJjNi04Mzc2NGRlNzA4NTkiLCJpZCI6MjU5LCJpYXQiOjE3NTY4NDExOTJ9._Y3MIsYgGKTVTpkEpKPNT0cQSa_hUocY0DdH7h0U-xM";
|
|
8
8
|
/**
|
|
9
9
|
* Default settings for accessing the Cesium ion API.
|
|
10
10
|
*
|
|
@@ -199,15 +199,8 @@ IonResource.prototype._makeRequest = function (options) {
|
|
|
199
199
|
return Resource.prototype._makeRequest.call(this, options);
|
|
200
200
|
}
|
|
201
201
|
|
|
202
|
-
|
|
203
|
-
options.headers = {};
|
|
204
|
-
}
|
|
202
|
+
addClientHeaders(options);
|
|
205
203
|
options.headers.Authorization = `Bearer ${this._ionEndpoint.accessToken}`;
|
|
206
|
-
options.headers["X-Cesium-Client"] = "CesiumJS";
|
|
207
|
-
/* global CESIUM_VERSION */
|
|
208
|
-
if (typeof CESIUM_VERSION !== "undefined") {
|
|
209
|
-
options.headers["X-Cesium-Client-Version"] = CESIUM_VERSION;
|
|
210
|
-
}
|
|
211
204
|
|
|
212
205
|
return Resource.prototype._makeRequest.call(this, options);
|
|
213
206
|
};
|
|
@@ -233,9 +226,22 @@ IonResource._createEndpointResource = function (assetId, options) {
|
|
|
233
226
|
resourceOptions.queryParameters = { access_token: accessToken };
|
|
234
227
|
}
|
|
235
228
|
|
|
229
|
+
addClientHeaders(resourceOptions);
|
|
230
|
+
|
|
236
231
|
return server.getDerivedResource(resourceOptions);
|
|
237
232
|
};
|
|
238
233
|
|
|
234
|
+
function addClientHeaders(options) {
|
|
235
|
+
if (!defined(options.headers)) {
|
|
236
|
+
options.headers = {};
|
|
237
|
+
}
|
|
238
|
+
options.headers["X-Cesium-Client"] = "CesiumJS";
|
|
239
|
+
/* global CESIUM_VERSION */
|
|
240
|
+
if (typeof CESIUM_VERSION !== "undefined") {
|
|
241
|
+
options.headers["X-Cesium-Client-Version"] = CESIUM_VERSION;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
239
245
|
function retryCallback(that, error) {
|
|
240
246
|
const ionRoot = that._ionRoot ?? that;
|
|
241
247
|
const endpointResource = ionRoot._ionEndpointResource;
|
|
@@ -981,9 +981,9 @@ function handlePointerMove(screenSpaceEventHandler, event) {
|
|
|
981
981
|
function ScreenSpaceEventHandler(element) {
|
|
982
982
|
this._inputEvents = {};
|
|
983
983
|
this._buttonDown = {
|
|
984
|
-
LEFT: false,
|
|
985
|
-
MIDDLE: false,
|
|
986
|
-
RIGHT: false,
|
|
984
|
+
[MouseButton.LEFT]: false,
|
|
985
|
+
[MouseButton.MIDDLE]: false,
|
|
986
|
+
[MouseButton.RIGHT]: false,
|
|
987
987
|
};
|
|
988
988
|
this._isPinching = false;
|
|
989
989
|
this._isTouchHolding = false;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import defined from "./defined.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Adds all elements from the given source array to the given target array.
|
|
5
|
+
*
|
|
6
|
+
* If the <code>source</code> is <code>null</code>, <code>undefined</code>,
|
|
7
|
+
* or empty, then nothing will be done. Otherwise, this has the same
|
|
8
|
+
* semantics as<br>
|
|
9
|
+
* <code>for (const s of source) target.push(s);</code><br>
|
|
10
|
+
* but is usually more efficient than a <code>for</code>-loop, and does not
|
|
11
|
+
* put the elements of the source on the stack, as it would be done with the
|
|
12
|
+
* spread operator or when using <code>target.push.apply(source)</code>.
|
|
13
|
+
*
|
|
14
|
+
* @function
|
|
15
|
+
* @private
|
|
16
|
+
*
|
|
17
|
+
* @param {Array} target The target array
|
|
18
|
+
* @param {Array|undefined} source The source array
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* const target = [ 0, 1, 2 ];
|
|
22
|
+
* const source = [ 3, 4, 5 ];
|
|
23
|
+
* Cesium.addAllToArray(target, source);
|
|
24
|
+
* // The target is now [ 0, 1, 2, 3, 4, 5 ]
|
|
25
|
+
*/
|
|
26
|
+
function addAllToArray(target, source) {
|
|
27
|
+
if (!defined(source)) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const sourceLength = source.length;
|
|
31
|
+
if (sourceLength === 0) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const targetLength = target.length;
|
|
35
|
+
target.length += sourceLength;
|
|
36
|
+
for (let i = 0; i < sourceLength; i++) {
|
|
37
|
+
target[targetLength + i] = source[i];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export default addAllToArray;
|
|
@@ -23,24 +23,18 @@ function Batch(
|
|
|
23
23
|
usingSphericalTextureCoordinates,
|
|
24
24
|
zIndex,
|
|
25
25
|
) {
|
|
26
|
-
this.primitives = primitives; // scene level primitive collection
|
|
26
|
+
this.primitives = primitives; // scene level primitive collection (each Batch manages its own Primitive from this collection)
|
|
27
27
|
this.classificationType = classificationType;
|
|
28
28
|
this.appearanceType = appearanceType;
|
|
29
29
|
this.materialProperty = materialProperty;
|
|
30
|
-
this.updaters = new AssociativeArray();
|
|
30
|
+
this.updaters = new AssociativeArray(); // GeometryUpdaters that manage the visual representation of the primitive.
|
|
31
31
|
this.createPrimitive = true;
|
|
32
32
|
this.primitive = undefined; // a GroundPrimitive encapsulating all the entities
|
|
33
|
-
this.oldPrimitive = undefined;
|
|
33
|
+
this.oldPrimitive = undefined; // a GroundPrimitive that is being replaced by the current primitive, but will still be shown until the current primitive is ready.
|
|
34
34
|
this.geometry = new AssociativeArray();
|
|
35
35
|
this.material = undefined;
|
|
36
36
|
this.updatersWithAttributes = new AssociativeArray();
|
|
37
37
|
this.attributes = new AssociativeArray();
|
|
38
|
-
this.invalidated = false;
|
|
39
|
-
this.removeMaterialSubscription =
|
|
40
|
-
materialProperty.definitionChanged.addEventListener(
|
|
41
|
-
Batch.prototype.onMaterialChanged,
|
|
42
|
-
this,
|
|
43
|
-
);
|
|
44
38
|
this.subscriptions = new AssociativeArray();
|
|
45
39
|
this.showsUpdated = new AssociativeArray();
|
|
46
40
|
this.usingSphericalTextureCoordinates = usingSphericalTextureCoordinates;
|
|
@@ -48,10 +42,6 @@ function Batch(
|
|
|
48
42
|
this.rectangleCollisionCheck = new RectangleCollisionChecker();
|
|
49
43
|
}
|
|
50
44
|
|
|
51
|
-
Batch.prototype.onMaterialChanged = function () {
|
|
52
|
-
this.invalidated = true;
|
|
53
|
-
};
|
|
54
|
-
|
|
55
45
|
Batch.prototype.overlapping = function (rectangle) {
|
|
56
46
|
return this.rectangleCollisionCheck.collides(rectangle);
|
|
57
47
|
};
|
|
@@ -71,6 +61,13 @@ Batch.prototype.isMaterial = function (updater) {
|
|
|
71
61
|
return defined(material) && material.equals(updaterMaterial);
|
|
72
62
|
};
|
|
73
63
|
|
|
64
|
+
/**
|
|
65
|
+
* Adds an updater to the Batch, and signals for a new Primitive to be created on the next update.
|
|
66
|
+
* @param {JulianDate} time
|
|
67
|
+
* @param {GeometryUpdater} updater
|
|
68
|
+
* @param {GeometryInstance} geometryInstance
|
|
69
|
+
* @private
|
|
70
|
+
*/
|
|
74
71
|
Batch.prototype.add = function (time, updater, geometryInstance) {
|
|
75
72
|
const id = updater.id;
|
|
76
73
|
this.updaters.set(id, updater);
|
|
@@ -100,6 +97,13 @@ Batch.prototype.add = function (time, updater, geometryInstance) {
|
|
|
100
97
|
this.createPrimitive = true;
|
|
101
98
|
};
|
|
102
99
|
|
|
100
|
+
/**
|
|
101
|
+
* Remove an updater from the Batch, and potentially signals for a new Primitive to be created
|
|
102
|
+
* on the next update.
|
|
103
|
+
* @param {GeometryUpdater} updater
|
|
104
|
+
* @returns true if the updater was removed, false if it was not found.
|
|
105
|
+
* @private
|
|
106
|
+
*/
|
|
103
107
|
Batch.prototype.remove = function (updater) {
|
|
104
108
|
const id = updater.id;
|
|
105
109
|
const geometryInstance = this.geometry.get(id);
|
|
@@ -120,6 +124,13 @@ Batch.prototype.remove = function (updater) {
|
|
|
120
124
|
return false;
|
|
121
125
|
};
|
|
122
126
|
|
|
127
|
+
/**
|
|
128
|
+
* Update a Batch, creating a new primitive, if necessary, or swapping out an old primitive for a new one that's ready.
|
|
129
|
+
* A new primitive is created whenever an updater is added to or removed from a Batch.
|
|
130
|
+
* @param {JulianDate} time
|
|
131
|
+
* @returns a boolean indicating whether the Batch was updated.
|
|
132
|
+
* @private
|
|
133
|
+
*/
|
|
123
134
|
Batch.prototype.update = function (time) {
|
|
124
135
|
let isUpdated = true;
|
|
125
136
|
let primitive = this.primitive;
|
|
@@ -295,6 +306,10 @@ Batch.prototype.getBoundingSphere = function (updater, result) {
|
|
|
295
306
|
return BoundingSphereState.DONE;
|
|
296
307
|
};
|
|
297
308
|
|
|
309
|
+
/**
|
|
310
|
+
* Removes a Batch's primitive (and oldPrimitive, if it exists).
|
|
311
|
+
* @private
|
|
312
|
+
*/
|
|
298
313
|
Batch.prototype.destroy = function () {
|
|
299
314
|
const primitive = this.primitive;
|
|
300
315
|
const primitives = this.primitives;
|
|
@@ -305,10 +320,11 @@ Batch.prototype.destroy = function () {
|
|
|
305
320
|
if (defined(oldPrimitive)) {
|
|
306
321
|
primitives.remove(oldPrimitive);
|
|
307
322
|
}
|
|
308
|
-
this.removeMaterialSubscription();
|
|
309
323
|
};
|
|
310
324
|
|
|
311
325
|
/**
|
|
326
|
+
* A container of Batch objects of ground geometry primitives, where a Batch is grouped by material,
|
|
327
|
+
* texture coordinate type, and spatial overlap.
|
|
312
328
|
* @private
|
|
313
329
|
*/
|
|
314
330
|
function StaticGroundGeometryPerMaterialBatch(
|
|
@@ -316,12 +332,20 @@ function StaticGroundGeometryPerMaterialBatch(
|
|
|
316
332
|
classificationType,
|
|
317
333
|
appearanceType,
|
|
318
334
|
) {
|
|
319
|
-
this._items = [];
|
|
320
|
-
this._primitives = primitives;
|
|
335
|
+
this._items = []; // array of Batch objects, each containing representing a primitive and a set of updaters that manage the visual representation of the primitive.
|
|
336
|
+
this._primitives = primitives; // scene level primitive collection
|
|
321
337
|
this._classificationType = classificationType;
|
|
322
338
|
this._appearanceType = appearanceType;
|
|
323
339
|
}
|
|
324
340
|
|
|
341
|
+
/**
|
|
342
|
+
* Adds an geometry updater to a Batch. Tries to find a preexisting compatible Batch, or else creates a new Batch.
|
|
343
|
+
* Used by Visualizer classes to add and update (remove->add) a primitive's Updater set.
|
|
344
|
+
*
|
|
345
|
+
* @param {JulianDate} time
|
|
346
|
+
* @param {GeometryUpdater} updater A GeometryUpdater that manages the visual representation of a primitive.
|
|
347
|
+
* @private
|
|
348
|
+
*/
|
|
325
349
|
StaticGroundGeometryPerMaterialBatch.prototype.add = function (time, updater) {
|
|
326
350
|
const items = this._items;
|
|
327
351
|
const length = items.length;
|
|
@@ -361,21 +385,30 @@ StaticGroundGeometryPerMaterialBatch.prototype.add = function (time, updater) {
|
|
|
361
385
|
items.push(batch);
|
|
362
386
|
};
|
|
363
387
|
|
|
388
|
+
/**
|
|
389
|
+
* Removes an updater from a Batch. Defers potential deletion until the next update.
|
|
390
|
+
* @param {GeometryUpdater} updater A GeometryUpdater that manages the visual representation of a primitive.
|
|
391
|
+
* @private
|
|
392
|
+
*/
|
|
364
393
|
StaticGroundGeometryPerMaterialBatch.prototype.remove = function (updater) {
|
|
365
394
|
const items = this._items;
|
|
366
395
|
const length = items.length;
|
|
367
396
|
for (let i = length - 1; i >= 0; i--) {
|
|
368
397
|
const item = items[i];
|
|
369
398
|
if (item.remove(updater)) {
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
item.destroy();
|
|
373
|
-
}
|
|
399
|
+
// If the item is now empty, delete it (deferred until the next update,
|
|
400
|
+
// in case a new updater is added to the same item first).
|
|
374
401
|
break;
|
|
375
402
|
}
|
|
376
403
|
}
|
|
377
404
|
};
|
|
378
405
|
|
|
406
|
+
/**
|
|
407
|
+
* Updates all the items (Batches) in the collection, and deletes any that are empty.
|
|
408
|
+
* @param {JulianDate} time
|
|
409
|
+
* @returns a boolean indicating whether any of the items (Batches) were updated.
|
|
410
|
+
* @private
|
|
411
|
+
*/
|
|
379
412
|
StaticGroundGeometryPerMaterialBatch.prototype.update = function (time) {
|
|
380
413
|
let i;
|
|
381
414
|
const items = this._items;
|
|
@@ -383,13 +416,8 @@ StaticGroundGeometryPerMaterialBatch.prototype.update = function (time) {
|
|
|
383
416
|
|
|
384
417
|
for (i = length - 1; i >= 0; i--) {
|
|
385
418
|
const item = items[i];
|
|
386
|
-
if (item.
|
|
419
|
+
if (item.updaters.length === 0) {
|
|
387
420
|
items.splice(i, 1);
|
|
388
|
-
const updaters = item.updaters.values;
|
|
389
|
-
const updatersLength = updaters.length;
|
|
390
|
-
for (let h = 0; h < updatersLength; h++) {
|
|
391
|
-
this.add(time, updaters[h]);
|
|
392
|
-
}
|
|
393
421
|
item.destroy();
|
|
394
422
|
}
|
|
395
423
|
}
|
|
@@ -1415,6 +1415,10 @@ Context.prototype.draw = function (
|
|
|
1415
1415
|
continueDraw(this, drawCommand, shaderProgram, uniformMap);
|
|
1416
1416
|
};
|
|
1417
1417
|
|
|
1418
|
+
Context.prototype.beginFrame = function () {
|
|
1419
|
+
// A no-op. Overridden when drawing to a SharedContext.
|
|
1420
|
+
};
|
|
1421
|
+
|
|
1418
1422
|
Context.prototype.endFrame = function () {
|
|
1419
1423
|
const gl = this._gl;
|
|
1420
1424
|
gl.useProgram(null);
|
|
@@ -1442,8 +1446,8 @@ Context.prototype.endFrame = function () {
|
|
|
1442
1446
|
* @param {object} readState An object with the following properties:
|
|
1443
1447
|
* @param {number} [readState.x=0] The x offset of the rectangle to read from.
|
|
1444
1448
|
* @param {number} [readState.y=0] The y offset of the rectangle to read from.
|
|
1445
|
-
* @param {number} [readState.width=
|
|
1446
|
-
* @param {number} [readState.height=
|
|
1449
|
+
* @param {number} [readState.width=this.drawingBufferWidth] The width of the rectangle to read from.
|
|
1450
|
+
* @param {number} [readState.height=this.drawingBufferHeight] The height of the rectangle to read from.
|
|
1447
1451
|
* @param {Framebuffer} [readState.framebuffer] The framebuffer to read from. If undefined, the read will be from the default framebuffer.
|
|
1448
1452
|
* @returns {Uint8Array|Uint16Array|Float32Array|Uint32Array} The pixels in the specified rectangle.
|
|
1449
1453
|
*/
|
|
@@ -1453,8 +1457,8 @@ Context.prototype.readPixels = function (readState) {
|
|
|
1453
1457
|
readState = readState ?? Frozen.EMPTY_OBJECT;
|
|
1454
1458
|
const x = Math.max(readState.x ?? 0, 0);
|
|
1455
1459
|
const y = Math.max(readState.y ?? 0, 0);
|
|
1456
|
-
const width = readState.width ??
|
|
1457
|
-
const height = readState.height ??
|
|
1460
|
+
const width = readState.width ?? this.drawingBufferWidth;
|
|
1461
|
+
const height = readState.height ?? this.drawingBufferHeight;
|
|
1458
1462
|
const framebuffer = readState.framebuffer;
|
|
1459
1463
|
|
|
1460
1464
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -21,10 +21,12 @@ function Renderbuffer(options) {
|
|
|
21
21
|
const maximumRenderbufferSize = ContextLimits.maximumRenderbufferSize;
|
|
22
22
|
|
|
23
23
|
const format = options.format ?? RenderbufferFormat.RGBA4;
|
|
24
|
-
const width = defined(options.width)
|
|
24
|
+
const width = defined(options.width)
|
|
25
|
+
? options.width
|
|
26
|
+
: context.drawingBufferWidth;
|
|
25
27
|
const height = defined(options.height)
|
|
26
28
|
? options.height
|
|
27
|
-
:
|
|
29
|
+
: context.drawingBufferHeight;
|
|
28
30
|
const numSamples = options.numSamples ?? 1;
|
|
29
31
|
|
|
30
32
|
//>>includeStart('debug', pragmas.debug);
|
|
@@ -13,6 +13,7 @@ function Sampler(options) {
|
|
|
13
13
|
options = options ?? Frozen.EMPTY_OBJECT;
|
|
14
14
|
|
|
15
15
|
const {
|
|
16
|
+
wrapR = TextureWrap.CLAMP_TO_EDGE,
|
|
16
17
|
wrapS = TextureWrap.CLAMP_TO_EDGE,
|
|
17
18
|
wrapT = TextureWrap.CLAMP_TO_EDGE,
|
|
18
19
|
minificationFilter = TextureMinificationFilter.LINEAR,
|
|
@@ -21,6 +22,10 @@ function Sampler(options) {
|
|
|
21
22
|
} = options;
|
|
22
23
|
|
|
23
24
|
//>>includeStart('debug', pragmas.debug);
|
|
25
|
+
if (!TextureWrap.validate(wrapR)) {
|
|
26
|
+
throw new DeveloperError("Invalid sampler.wrapR.");
|
|
27
|
+
}
|
|
28
|
+
|
|
24
29
|
if (!TextureWrap.validate(wrapS)) {
|
|
25
30
|
throw new DeveloperError("Invalid sampler.wrapS.");
|
|
26
31
|
}
|
|
@@ -44,6 +49,7 @@ function Sampler(options) {
|
|
|
44
49
|
);
|
|
45
50
|
//>>includeEnd('debug');
|
|
46
51
|
|
|
52
|
+
this._wrapR = wrapR;
|
|
47
53
|
this._wrapS = wrapS;
|
|
48
54
|
this._wrapT = wrapT;
|
|
49
55
|
this._minificationFilter = minificationFilter;
|
|
@@ -52,6 +58,11 @@ function Sampler(options) {
|
|
|
52
58
|
}
|
|
53
59
|
|
|
54
60
|
Object.defineProperties(Sampler.prototype, {
|
|
61
|
+
wrapR: {
|
|
62
|
+
get: function () {
|
|
63
|
+
return this._wrapR;
|
|
64
|
+
},
|
|
65
|
+
},
|
|
55
66
|
wrapS: {
|
|
56
67
|
get: function () {
|
|
57
68
|
return this._wrapS;
|
|
@@ -84,6 +95,7 @@ Sampler.equals = function (left, right) {
|
|
|
84
95
|
left === right ||
|
|
85
96
|
(defined(left) &&
|
|
86
97
|
defined(right) &&
|
|
98
|
+
left._wrapR === right._wrapR &&
|
|
87
99
|
left._wrapS === right._wrapS &&
|
|
88
100
|
left._wrapT === right._wrapT &&
|
|
89
101
|
left._minificationFilter === right._minificationFilter &&
|
|
@@ -94,6 +106,7 @@ Sampler.equals = function (left, right) {
|
|
|
94
106
|
|
|
95
107
|
Sampler.NEAREST = Object.freeze(
|
|
96
108
|
new Sampler({
|
|
109
|
+
wrapR: TextureWrap.CLAMP_TO_EDGE,
|
|
97
110
|
wrapS: TextureWrap.CLAMP_TO_EDGE,
|
|
98
111
|
wrapT: TextureWrap.CLAMP_TO_EDGE,
|
|
99
112
|
minificationFilter: TextureMinificationFilter.NEAREST,
|
|
@@ -7,6 +7,7 @@ import ShaderProgram from "./ShaderProgram.js";
|
|
|
7
7
|
import ShaderSource from "./ShaderSource.js";
|
|
8
8
|
import ShaderStruct from "./ShaderStruct.js";
|
|
9
9
|
import ShaderFunction from "./ShaderFunction.js";
|
|
10
|
+
import addAllToArray from "../Core/addAllToArray.js";
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* An object that makes it easier to build the text of a {@link ShaderProgram}. This tracks GLSL code for both the vertex shader and the fragment shader.
|
|
@@ -413,7 +414,7 @@ ShaderBuilder.prototype.addVertexLines = function (lines) {
|
|
|
413
414
|
|
|
414
415
|
const vertexLines = this._vertexShaderParts.shaderLines;
|
|
415
416
|
if (Array.isArray(lines)) {
|
|
416
|
-
|
|
417
|
+
addAllToArray(vertexLines, lines);
|
|
417
418
|
} else {
|
|
418
419
|
// Single string case
|
|
419
420
|
vertexLines.push(lines);
|
|
@@ -448,7 +449,7 @@ ShaderBuilder.prototype.addFragmentLines = function (lines) {
|
|
|
448
449
|
|
|
449
450
|
const fragmentLines = this._fragmentShaderParts.shaderLines;
|
|
450
451
|
if (Array.isArray(lines)) {
|
|
451
|
-
|
|
452
|
+
addAllToArray(fragmentLines, lines);
|
|
452
453
|
} else {
|
|
453
454
|
// Single string case
|
|
454
455
|
fragmentLines.push(lines);
|
|
@@ -533,7 +534,7 @@ function generateStructLines(shaderBuilder) {
|
|
|
533
534
|
structId = structIds[i];
|
|
534
535
|
struct = shaderBuilder._structs[structId];
|
|
535
536
|
structLines = struct.generateGlslLines();
|
|
536
|
-
|
|
537
|
+
addAllToArray(vertexLines, structLines);
|
|
537
538
|
}
|
|
538
539
|
|
|
539
540
|
structIds = shaderBuilder._fragmentShaderParts.structIds;
|
|
@@ -541,7 +542,7 @@ function generateStructLines(shaderBuilder) {
|
|
|
541
542
|
structId = structIds[i];
|
|
542
543
|
struct = shaderBuilder._structs[structId];
|
|
543
544
|
structLines = struct.generateGlslLines();
|
|
544
|
-
|
|
545
|
+
addAllToArray(fragmentLines, structLines);
|
|
545
546
|
}
|
|
546
547
|
|
|
547
548
|
return {
|
|
@@ -576,7 +577,7 @@ function generateFunctionLines(shaderBuilder) {
|
|
|
576
577
|
functionId = functionIds[i];
|
|
577
578
|
func = shaderBuilder._functions[functionId];
|
|
578
579
|
functionLines = func.generateGlslLines();
|
|
579
|
-
|
|
580
|
+
addAllToArray(vertexLines, functionLines);
|
|
580
581
|
}
|
|
581
582
|
|
|
582
583
|
functionIds = shaderBuilder._fragmentShaderParts.functionIds;
|
|
@@ -584,7 +585,7 @@ function generateFunctionLines(shaderBuilder) {
|
|
|
584
585
|
functionId = functionIds[i];
|
|
585
586
|
func = shaderBuilder._functions[functionId];
|
|
586
587
|
functionLines = func.generateGlslLines();
|
|
587
|
-
|
|
588
|
+
addAllToArray(fragmentLines, functionLines);
|
|
588
589
|
}
|
|
589
590
|
|
|
590
591
|
return {
|