UNPKG

@jscad/modeling

Version:

Constructive Solid Geometry (CSG) Library for JSCAD

26 lines (19 loc) 717 B
const flatten = require('../../utils/flatten') const retessellate = require('../modifiers/retessellate') const intersectSub = require('./intersectGeom3Sub') /* * Return a new 3D geometry representing space in both the first geometry and * in the subsequent geometries. None of the given geometries are modified. * @param {...geom3} geometries - list of 3D geometries * @returns {geom3} new 3D geometry */ const intersect = (...geometries) => { geometries = flatten(geometries) let newgeometry = geometries.shift() geometries.forEach((geometry) => { newgeometry = intersectSub(newgeometry, geometry) }) newgeometry = retessellate(newgeometry) return newgeometry } module.exports = intersect