This is a converter which enables conversion of ThreeJS objects into CSG and back (it works both ways).
CSG objects created by this converter can then be manipulated via @jscad/csg.
This solution is based on ThreeCSG.js converter by Chandler Prall.
npm i three-2-csg
;
The following example is based on a Stack overflow example by 4m1r:
import { toCSG, fromCSG } from 'three-2-csg';
//sphere
var sphere = new THREE.SphereGeometry(2,20,20);
var sphereMesh = new THREE.Mesh( sphere, material );
var sphereCSG = toCSG( sphereMesh ); // converting ThreeJS object to CSG
// cyl
var cylinder = new THREE.CylinderGeometry(0.5, 0.5, 5, 32 );
var cylinderMesh = new THREE.Mesh( cylinder, material );
var cylinderCSG = toCSG( cylinderMesh ); // converting ThreeJS object to CSG
//result
var subtractCSG = sphereCSG.subtract( cylinderCSG );
var result = fromCSG(subtractCSG); // converting CSG back into ThreeJS object
result.geometry.computeVertexNormals();
scene.add( result );
- toCSG(three_model) ⇒
CSG_solid
Converts a ThreeJS 3D object into a CSG solid
- fromCSG(csg_model) ⇒
THREE_Geometry
Converts a CSG solid (3d object) into regular ThreeJS geometry
Converts a ThreeJS 3D object into a CSG solid
Kind: global function
Param | Type | Description |
---|---|---|
three_model | ThreeJS_Mesh |
ThreeJS Mesh (or Geometry) which needs to be converted |
Converts a CSG solid (3d object) into regular ThreeJS geometry
Kind: global function
Param | Type | Description |
---|---|---|
csg_model | CSG_solid |
= CSG solid to be converted |
MIT License, http://www.opensource.org/licenses/MIT