meshHullRes = {
let meshA = hull3D.children[0]
let meshB = hull3DSmall.children[0]
let meshC = geomBounds3D.children[0]
let meshD = geomBounds3DSmall.children[0]
meshB.scale.set(.95, .95, .95);
meshC.scale.set(.95, .95, .95);
meshD.scale.set(.95, .95, .95);
let bb1 = getBoundingBoxCenter(meshA)
let bb2 = getBoundingBoxCenter(meshB)
let bb3 = getBoundingBoxCenter(meshC)
let bb4 = getBoundingBoxCenter(meshD)
let translation = new THREE.Vector3().subVectors(bb1, bb2);
meshB.position.x += translation.x;
meshB.position.y += translation.y;
meshB.position.z = bb1.z;
translation = new THREE.Vector3().subVectors(bb1, bb3);
meshC.position.x += translation.x;
meshC.position.y += translation.y;
meshC.position.z = depth - 20
translation = new THREE.Vector3().subVectors(bb1, bb4);
meshD.position.x += translation.x;
meshD.position.y += translation.y;
meshD.position.z = depth + 20;
meshA.updateMatrix();
meshB.updateMatrix();
meshC.updateMatrix();
meshD.updateMatrix();
let bspA = CSG.fromMesh( meshA );
let bspB = CSG.fromMesh( meshB );
let bspC = CSG.fromMesh( meshC );
let bspD = CSG.fromMesh( meshD );
let bspResult = bspA.subtract(bspB);
bspResult = bspResult.subtract(bspC);
var mesh = CSG.toMesh( bspResult, meshA.matrix, meshA.material );
mesh.geometry.computeVertexNormals();
const material = new THREE.MeshNormalMaterial();
var bufferGeometry = new THREE.BufferGeometry().fromGeometry( mesh.geometry );
mesh = new THREE.Mesh( bufferGeometry, material )
position(mesh)
return mesh
}