From b4b6e598077fd7b8b1210deb2aa891412d720912 Mon Sep 17 00:00:00 2001 From: casperlamboo Date: Fri, 26 May 2017 17:35:30 +0200 Subject: [PATCH] update add brim code --- src/sliceActions/addBrim.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/sliceActions/addBrim.js b/src/sliceActions/addBrim.js index 6d3ffd5..f11cc66 100644 --- a/src/sliceActions/addBrim.js +++ b/src/sliceActions/addBrim.js @@ -1,9 +1,9 @@ +import Shape from 'Doodle3D/clipper-js'; import * as THREE from 'three.js'; import { PRECISION } from '../constants.js'; const offsetOptions = { - jointType: 'jtSquare', - endType: 'etClosedPolygon', + jointType: 'jtRound', miterLimit: 2.0, roundPrecision: 0.25 }; @@ -14,8 +14,13 @@ export default function addBrim(slices, settings) { let { brimOffset } = settings.config; brimOffset /= PRECISION; - const fistLayer = slices[0]; - fistLayer.brim = fistLayer - .getOutline() - .offset(brimOffset, offsetOptions); + const [fistLayer] = slices; + + fistLayer.brim = fistLayer.parts.reduce((brim, { shape }) => { + brim.join(shape.offset(brimOffset, { + ...offsetOptions, + endType: shape.closed ? 'etClosedPolygon' : 'etOpenRound' + })); + return brim; + }, new Shape([], true)).simplify('pftNonZero'); }