Away from my current CSG implementation for a quick breather. This stuff is getting pretty complex, and I'm not sure whether my solution is very efficient and/or nicely designed. My approach to software design these days is very much based on my gut feeling as opposed to sitting down for hours with UML diagrams and design guidelines before doing anything. And this is after four years of university CS training! That only proves that design is a very individual process. I prefer to sketch my designs in code in something akin to XP, while others want (need to?) work it all out on paper before they implement something.
It's funny how design patterns change your life. Not that I didn't use them even before they had a name (of course I did), but I can't for the life of me remember how I used to think about stuff like trees, traversals and factory functions and so on. Actually, by now, I'm having a hard time remembering how I used to traverse trees before visitors, decorators and composites came along!
Ahh, well, enough with this, now it's time to go back and pick up where I left off with this CSG code.