mirror of
https://github.com/Doodle3D/Doodle3D-Slicer.git
synced 2024-06-02 13:54:32 +02:00
26 lines
615 B
JavaScript
26 lines
615 B
JavaScript
import Shape from 'clipper-js';
|
|
import { PRECISION } from '../constants.js';
|
|
|
|
const offsetOptions = {
|
|
jointType: 'jtRound',
|
|
miterLimit: 2.0,
|
|
roundPrecision: 0.25
|
|
};
|
|
|
|
export default function addBrim(slices, settings) {
|
|
let {
|
|
brim: { offset: brimOffset }
|
|
} = settings;
|
|
brimOffset /= PRECISION;
|
|
|
|
const [firstLayer] = slices;
|
|
|
|
firstLayer.brim = firstLayer.parts.reduce((brim, { shape }) => {
|
|
brim.join(shape.offset(brimOffset, {
|
|
...offsetOptions,
|
|
endType: shape.closed ? 'etClosedPolygon' : 'etOpenRound'
|
|
}));
|
|
return brim;
|
|
}, new Shape([], true)).simplify('pftNonZero');
|
|
}
|