Skip to content

Latest commit

 

History

History
71 lines (49 loc) · 2.35 KB

README.md

File metadata and controls

71 lines (49 loc) · 2.35 KB

What's this?

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.

Installation

npm i three-2-csg;

Example

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 );

Functions

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

toCSG(three_model) ⇒ CSG_solid

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

fromCSG(csg_model) ⇒ THREE_Geometry

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

License

MIT License, http://www.opensource.org/licenses/MIT