forked from InsightSoftwareConsortium/itk-wasm
/
readMeshFile.js
29 lines (26 loc) · 856 Bytes
/
readMeshFile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import createWebworkerPromise from './createWebworkerPromise'
import PromiseFileReader from 'promise-file-reader'
import config from './itkConfig'
const readMeshFile = (webWorker, file) => {
let worker = webWorker
return createWebworkerPromise('MeshIO', worker)
.then(({ webworkerPromise, worker: usedWorker }) => {
worker = usedWorker
return PromiseFileReader.readAsArrayBuffer(file)
.then(arrayBuffer => {
return webworkerPromise.postMessage(
{
operation: 'readMesh',
name: file.name,
type: file.type,
data: arrayBuffer,
config: config
},
[arrayBuffer])
}
).then(function (mesh) {
return Promise.resolve({ mesh, webWorker: worker })
})
})
}
export default readMeshFile