Doodle3D-Slicer/src/slicer.worker.js

39 lines
1.1 KiB
JavaScript
Raw Normal View History

import 'core-js'; // polyfills
2016-10-13 14:22:04 +02:00
import slice from './sliceActions/slice.js';
2018-01-18 12:06:14 +01:00
import * as THREE from 'three';
2016-08-19 14:46:02 +02:00
2017-07-18 12:26:30 +02:00
const onProgress = progress => {
self.postMessage({
message: 'PROGRESS',
data: progress
2017-07-18 12:26:30 +02:00
});
}
2018-01-18 12:06:14 +01:00
const loader = new THREE.JSONLoader();
2018-01-17 15:27:42 +01:00
self.addEventListener('message', (event) => {
2016-08-19 14:46:02 +02:00
const { message, data } = event.data;
switch (message) {
case 'SLICE': {
const { settings, geometry: JSONGeometry, constructLinePreview, openObjectIndexes } = data;
const { geometry } = loader.parse(JSONGeometry.data);
2016-08-19 14:46:02 +02:00
const gcode = slice(settings, geometry, openObjectIndexes, constructLinePreview, onProgress);
2017-11-12 11:53:45 +01:00
const buffers = [];
2018-02-11 23:28:25 +01:00
// if (gcode.linePreview) {
// const position = gcode.linePreview.geometry.getAttribute('position').array;
// const color = gcode.linePreview.geometry.getAttribute('color').array;
// buffers.push(position.buffer, color.buffer);
// gcode.linePreview = { position, color };
// }
2016-08-19 14:46:02 +02:00
self.postMessage({
message: 'SLICE',
data: { gcode }
2017-11-12 11:53:45 +01:00
}, buffers);
2016-08-19 14:46:02 +02:00
break;
}
}
}, false);