// Last edited on 2011-04-27 22:54:19 by stolfi // CUTTERS #macro cutter_not_NE() // A cutter that removes the Northeast quarter of threespace, rel to Z axis. union{ plane{ x,0 } plane{ y,0 } } #end #macro cutter_not_SE() // A cutter that removes the Southeast quarter of threespace, rel to Z axis. union{ plane{ x,0 } plane{ -y,0 } } #end #macro cutter_not_SEZ() // A cutter that removes the upper half of the Southeast quarter of // threespace, rel to origin. union{ plane{ x,0 } plane{ -y,0 } plane{ z,0 } } #end #macro cutter_not_E() // A cutter that removes the East half of threespace, rel to Z axis. plane{ +x,0 } #end #macro cutter_not_N() // A cutter that removes the North quarter of threespace, rel to Z axis. plane{ +y,0 } #end #macro cutter_not_S() // A cutter that removes the South quarter of threespace, rel to Z axis. plane{ -y,0 } #end #macro cutter_not_Z() // A cutter that removes the positive Z halfspace plane{ +z,0 } #end #macro cutter_NS_slice() // A cutter that leaves only a slice of space along the {X=0} plane. intersection{ plane{ +x,0 translate +0.005*x } plane{ -x,0 translate -0.005*x } } #end #macro cutter_EW_slice() // A cutter that leaves only a slice of space along the {Y=0} plane. intersection{ plane{ +y,0 translate +0.005*y } plane{ -y,0 translate -0.005*y } } #end #macro cutter_hor_slice() // A cutter that leaves only a slice of space along the {Z=0} plane. intersection{ plane{ +z,0 translate +0.005*z } plane{ -z,0 translate -0.005*z } } #end #macro cutter_keep_all() // A cutter that does not remove anything: sphere{ <0,0,0>, 3000 } #end