public BooleanModeller(Solid solid1, Solid solid2)
{
//representation to apply boolean operations
object1 = new Object3D(solid1);
object2 = new Object3D(solid2);
//split the faces so that none of them intercepts each other
object1.splitFaces(object2);
object2.splitFaces(object1);
//classify faces as being inside or outside the other solid
object1.classifyFaces(object2);
object2.classifyFaces(object1);
}