createGeometry.js 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /**
  2. * @license
  3. * Cesium - https://github.com/CesiumGS/cesium
  4. * Version 1.97
  5. *
  6. * Copyright 2011-2022 Cesium Contributors
  7. *
  8. * Licensed under the Apache License, Version 2.0 (the "License");
  9. * you may not use this file except in compliance with the License.
  10. * You may obtain a copy of the License at
  11. *
  12. * http://www.apache.org/licenses/LICENSE-2.0
  13. *
  14. * Unless required by applicable law or agreed to in writing, software
  15. * distributed under the License is distributed on an "AS IS" BASIS,
  16. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  17. * See the License for the specific language governing permissions and
  18. * limitations under the License.
  19. *
  20. * Columbus View (Pat. Pend.)
  21. *
  22. * Portions licensed separately.
  23. * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details.
  24. */
  25. define(['./defaultValue-a6eb9f34', './PrimitivePipeline-c8fc30b4', './createTaskProcessorWorker', './Transforms-c78c4637', './Matrix2-ab676047', './RuntimeError-1088cc64', './ComponentDatatype-e06f4e16', './WebGLConstants-d81b330d', './_commonjsHelpers-89c9b271', './combine-7cf28d88', './GeometryAttribute-4f02e2ad', './GeometryAttributes-aff51037', './GeometryPipeline-5a61c463', './AttributeCompression-8033f934', './EncodedCartesian3-7959a913', './IndexDatatype-c2232ebd', './IntersectionTests-f96cd46d', './Plane-c985a1d2', './WebMercatorProjection-0d64470e'], (function (defaultValue, PrimitivePipeline, createTaskProcessorWorker, Transforms, Matrix2, RuntimeError, ComponentDatatype, WebGLConstants, _commonjsHelpers, combine, GeometryAttribute, GeometryAttributes, GeometryPipeline, AttributeCompression, EncodedCartesian3, IndexDatatype, IntersectionTests, Plane, WebMercatorProjection) { 'use strict';
  26. /* global require */
  27. const moduleCache = {};
  28. function getModule(moduleName) {
  29. let module = moduleCache[moduleName];
  30. if (!defaultValue.defined(module)) {
  31. if (typeof exports === "object") {
  32. // Use CommonJS-style require.
  33. moduleCache[module] = module = require(`Workers/${moduleName}`);
  34. } else {
  35. // Use AMD-style require.
  36. // in web workers, require is synchronous
  37. require([`Workers/${moduleName}`], function (f) {
  38. module = f;
  39. moduleCache[module] = f;
  40. });
  41. }
  42. }
  43. return module;
  44. }
  45. function createGeometry(parameters, transferableObjects) {
  46. const subTasks = parameters.subTasks;
  47. const length = subTasks.length;
  48. const resultsOrPromises = new Array(length);
  49. for (let i = 0; i < length; i++) {
  50. const task = subTasks[i];
  51. const geometry = task.geometry;
  52. const moduleName = task.moduleName;
  53. if (defaultValue.defined(moduleName)) {
  54. const createFunction = getModule(moduleName);
  55. resultsOrPromises[i] = createFunction(geometry, task.offset);
  56. } else {
  57. //Already created geometry
  58. resultsOrPromises[i] = geometry;
  59. }
  60. }
  61. return Promise.all(resultsOrPromises).then(function (results) {
  62. return PrimitivePipeline.PrimitivePipeline.packCreateGeometryResults(
  63. results,
  64. transferableObjects
  65. );
  66. });
  67. }
  68. var createGeometry$1 = createTaskProcessorWorker(createGeometry);
  69. return createGeometry$1;
  70. }));