createGeometry.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. define(['./defaultValue-fe22d8c0', './PrimitivePipeline-fc1a47ff', './createTaskProcessorWorker', './Transforms-bc45e707', './Matrix3-41c58dde', './Check-6ede7e26', './Math-0a2ac845', './Matrix2-e1298525', './RuntimeError-ef395448', './combine-d9581036', './ComponentDatatype-cf1fa08e', './WebGLConstants-0b1ce7ba', './GeometryAttribute-a466e9c7', './GeometryAttributes-ad136444', './GeometryPipeline-dcf79306', './AttributeCompression-f9f6c717', './EncodedCartesian3-57415c8a', './IndexDatatype-2643aa47', './IntersectionTests-88c49b2e', './Plane-4c3d403b', './WebMercatorProjection-13ed1a6e'], (function (defaultValue, PrimitivePipeline, createTaskProcessorWorker, Transforms, Matrix3, Check, Math, Matrix2, RuntimeError, combine, ComponentDatatype, WebGLConstants, GeometryAttribute, GeometryAttributes, GeometryPipeline, AttributeCompression, EncodedCartesian3, IndexDatatype, IntersectionTests, Plane, WebMercatorProjection) { 'use strict';
  2. /* global require */
  3. const moduleCache = {};
  4. function getModule(moduleName) {
  5. let module = moduleCache[moduleName];
  6. if (!defaultValue.defined(module)) {
  7. if (typeof exports === "object") {
  8. // Use CommonJS-style require.
  9. moduleCache[module] = module = require(`Workers/${moduleName}`);
  10. } else {
  11. // Use AMD-style require.
  12. // in web workers, require is synchronous
  13. require([`Workers/${moduleName}`], function (f) {
  14. module = f;
  15. moduleCache[module] = f;
  16. });
  17. }
  18. }
  19. return module;
  20. }
  21. function createGeometry(parameters, transferableObjects) {
  22. const subTasks = parameters.subTasks;
  23. const length = subTasks.length;
  24. const resultsOrPromises = new Array(length);
  25. for (let i = 0; i < length; i++) {
  26. const task = subTasks[i];
  27. const geometry = task.geometry;
  28. const moduleName = task.moduleName;
  29. if (defaultValue.defined(moduleName)) {
  30. const createFunction = getModule(moduleName);
  31. resultsOrPromises[i] = createFunction(geometry, task.offset);
  32. } else {
  33. //Already created geometry
  34. resultsOrPromises[i] = geometry;
  35. }
  36. }
  37. return Promise.all(resultsOrPromises).then(function (results) {
  38. return PrimitivePipeline.PrimitivePipeline.packCreateGeometryResults(
  39. results,
  40. transferableObjects
  41. );
  42. });
  43. }
  44. var createGeometry$1 = createTaskProcessorWorker(createGeometry);
  45. return createGeometry$1;
  46. }));