Constructive Solid Geometry (CSG)
Description
The CSG branch demonstrates,
- Using the Union method to return a new Mesh consisting of Mesh A and Mesh B
- Using the Intersects method to return a new Mesh where Mesh A and Mesh B overlap each other.
- Using the Subtract method to return a new Mesh where Mesh B is subtracted from Mesh A
To load the CSG example, checkout the csg branch.
git clone https://github.com/Sean-Bradley/Three.js-TypeScript-Boilerplate.git
cd Three.js-TypeScript-Boilerplate
git checkout csg
npm install
npm run dev
Union
Return a new CSG solid consisting of A and B
A.union(B)
+-------+ +-------+
| | | |
| A | | |
| +--+----+ = | +----+
+----+--+ | +----+ |
| B | | |
| | | |
+-------+ +-------+
Subtract
Return a new CSG solid where B is subtracted from A
A.subtract(B)
+-------+ +-------+
| | | |
| A | | |
| +--+----+ = | +--+
+----+--+ | +----+
| B |
| |
+-------+
Intersect
Return a new CSG solid where both A and B overlap
A.intersect(B)
+-------+
| |
| A |
| +--+----+ = +--+
+----+--+ | +--+
| B |
| |
+-------+
CSG Tree Image By User:Zottie - Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=263170