@bitbybit-dev/occt
Version:
Bit By Bit Developers CAD algorithms using OpenCascade Technology kernel. Run in Node and in Browser.
28 lines (27 loc) • 1.05 kB
JavaScript
export class ShellsService {
constructor(occ, shapeGettersService, converterService, facesService) {
this.occ = occ;
this.shapeGettersService = shapeGettersService;
this.converterService = converterService;
this.facesService = facesService;
}
getShellSurfaceArea(inputs) {
const faces = this.shapeGettersService.getFaces(inputs);
const faceAreas = this.facesService.getFacesAreas({ shapes: faces });
return faceAreas.reduce((p, c) => p + c, 0);
}
sewFaces(inputs) {
const sew = new this.occ.BRepBuilderAPI_Sewing(inputs.tolerance, true, true, true, false);
inputs.shapes.forEach(face => {
sew.Add(face);
});
const messageProgress = new this.occ.Message_ProgressRange_1();
sew.Perform(messageProgress);
const res = sew.SewedShape();
const result = this.converterService.getActualTypeOfShape(res);
sew.delete();
messageProgress.delete();
res.delete();
return result;
}
}