mirror of
https://github.com/Theaninova/Bampy.git
synced 2026-01-08 19:13:01 +00:00
stuff
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
import { BufferGeometryLoader } from 'three';
|
||||
import { type SliceArguments, type ProgressMessage, type WorkerEvent } from './worker-data';
|
||||
import { BufferGeometry, BufferGeometryLoader, Float32BufferAttribute } from 'three';
|
||||
import {
|
||||
type SliceArguments,
|
||||
type ProgressMessage,
|
||||
type WorkerEvent,
|
||||
type LayerMessage,
|
||||
LayerType
|
||||
} from './worker-data';
|
||||
import init, { slice } from 'bampy';
|
||||
|
||||
addEventListener('message', async (event: MessageEvent<WorkerEvent>) => {
|
||||
@@ -9,11 +15,20 @@ addEventListener('message', async (event: MessageEvent<WorkerEvent>) => {
|
||||
geometry.toNonIndexed();
|
||||
}
|
||||
await init();
|
||||
slice(
|
||||
geometry.attributes.position.array as Float32Array,
|
||||
event.data.data.layerHeight,
|
||||
event.data.data.maxNonPlanarAngle
|
||||
);
|
||||
const result = slice({
|
||||
positions: geometry.attributes.position.array as Float32Array,
|
||||
layerHeight: event.data.data.layerHeight,
|
||||
maxAngle: event.data.data.maxNonPlanarAngle
|
||||
});
|
||||
for (const layer of result.rings) {
|
||||
const geometry = new BufferGeometry();
|
||||
geometry.setAttribute('position', new Float32BufferAttribute(layer, 3));
|
||||
|
||||
self.postMessage({
|
||||
type: 'layer',
|
||||
data: { type: LayerType.Line, geometry: geometry.toJSON() }
|
||||
} satisfies LayerMessage);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user