You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.4 KiB
55 lines
2.4 KiB
define(['./defaultValue-fe22d8c0', './PrimitivePipeline-6081d138', './createTaskProcessorWorker', './Transforms-b527bb09', './Matrix3-41c58dde', './Check-6ede7e26', './Math-0a2ac845', './Matrix2-e1298525', './RuntimeError-ef395448', './combine-d9581036', './ComponentDatatype-cf1fa08e', './WebGLConstants-0b1ce7ba', './GeometryAttribute-a5b6275b', './GeometryAttributes-ad136444', './GeometryPipeline-fa9e6ffc', './AttributeCompression-f9f6c717', './EncodedCartesian3-57415c8a', './IndexDatatype-2643aa47', './IntersectionTests-feace3da', './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';
|
|
|
|
/* global require */
|
|
|
|
const moduleCache = {};
|
|
|
|
function getModule(moduleName) {
|
|
let module = moduleCache[moduleName];
|
|
if (!defaultValue.defined(module)) {
|
|
if (typeof exports === "object") {
|
|
// Use CommonJS-style require.
|
|
moduleCache[module] = module = require(`Workers/${moduleName}`);
|
|
} else {
|
|
// Use AMD-style require.
|
|
// in web workers, require is synchronous
|
|
require([`Workers/${moduleName}`], function (f) {
|
|
module = f;
|
|
moduleCache[module] = f;
|
|
});
|
|
}
|
|
}
|
|
return module;
|
|
}
|
|
|
|
function createGeometry(parameters, transferableObjects) {
|
|
const subTasks = parameters.subTasks;
|
|
const length = subTasks.length;
|
|
const resultsOrPromises = new Array(length);
|
|
|
|
for (let i = 0; i < length; i++) {
|
|
const task = subTasks[i];
|
|
const geometry = task.geometry;
|
|
const moduleName = task.moduleName;
|
|
|
|
if (defaultValue.defined(moduleName)) {
|
|
const createFunction = getModule(moduleName);
|
|
resultsOrPromises[i] = createFunction(geometry, task.offset);
|
|
} else {
|
|
//Already created geometry
|
|
resultsOrPromises[i] = geometry;
|
|
}
|
|
}
|
|
|
|
return Promise.all(resultsOrPromises).then(function (results) {
|
|
return PrimitivePipeline.PrimitivePipeline.packCreateGeometryResults(
|
|
results,
|
|
transferableObjects
|
|
);
|
|
});
|
|
}
|
|
var createGeometry$1 = createTaskProcessorWorker(createGeometry);
|
|
|
|
return createGeometry$1;
|
|
|
|
}));
|
|
|