UNPKG

@cesium/engine

Version:

CesiumJS is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin.

35 lines (28 loc) 1.13 kB
import createTaskProcessorWorker from "./createTaskProcessorWorker.js"; import defined from "../Core/defined.js"; import { initSync, radix_sort_gaussians_indexes } from "@cesium/wasm-splats"; //load built wasm modules for sorting. Ensure we can load webassembly and we support SIMD. async function initWorker(parameters, transferableObjects) { // Require and compile WebAssembly module, or use fallback if not supported const wasmConfig = parameters.webAssemblyConfig; if (defined(wasmConfig) && defined(wasmConfig.wasmBinary)) { initSync({ module: wasmConfig.wasmBinary }); return true; } } function generateGaussianSortWorker(parameters, transferableObjects) { // Handle initialization const wasmConfig = parameters.webAssemblyConfig; if (defined(wasmConfig)) { return initWorker(parameters, transferableObjects); } const { primitive, sortType } = parameters; if (sortType === "Index") { return radix_sort_gaussians_indexes( primitive.positions, primitive.modelView, primitive.count, ); } } export default createTaskProcessorWorker(generateGaussianSortWorker);