def test_02_complex_insets(self): """Test a complicated set of insets, on the head model.""" print "\nPerforming a series of profiling and insetting, " \ "on a model of rantenki's head." stl = helpers.get_head() model = Model.from_stl(stl) now=time.time() layers = [ (plane[0], Layer.from_CGAL_intersections(plane[1])) for plane in model.generate_planar_intersections(0, 0.5, 30) if len(plane[1])] print "Generating slices for %d layers took %3.3f seconds." % (len(layers), time.time()-now) now = time.time() for layer in layers: polys = list(layer[1].polys) for erosion in [0.15, 0.3, .45]: eroded = [poly.buffer(-erosion) for poly in polys] print "Insetting perimeters for 3 loops for %d layers took %3.3f seconds." % (len(layers), time.time()-now) return #We don't need to dump files now. now = time.time() for layer in layers: outpath = os.path.join( os.path.dirname(__file__), 'out', "layer-%3.3fz.png" % layer[0]) surf = get_cairo_surf(outpath) polys = list(layer[1].polys) draw_cairo_polys(polys, surf, (0,0,0.5,1)) for erosion in [0.15, 0.3, .45]: eroded = [poly.buffer(-erosion) for poly in polys] draw_cairo_polys(eroded, surf, (0.2, 2*erosion, 0.2, 1)) for internal in poly.interiors: draw_cairo_polys(internal, surf, (0.2, 0.2, 2*erosion, 1)) surf.write_to_png(outpath) print "Generating hires pngs of the sliced/inset layers took %3.3f seconds." % (time.time()-now)
def test_02_complex_insets(self): """Test a complicated set of insets, on the head model.""" print "\nPerforming a series of profiling and insetting, " \ "on a model of rantenki's head." stl = helpers.get_head() model = Model.from_stl(stl) now = time.time() layers = [(plane[0], Layer.from_CGAL_intersections(plane[1])) for plane in model.generate_planar_intersections(0, 0.5, 30) if len(plane[1])] print "Generating slices for %d layers took %3.3f seconds." % ( len(layers), time.time() - now) now = time.time() for layer in layers: polys = list(layer[1].polys) for erosion in [0.15, 0.3, .45]: eroded = [poly.buffer(-erosion) for poly in polys] print "Insetting perimeters for 3 loops for %d layers took %3.3f seconds." % ( len(layers), time.time() - now) return #We don't need to dump files now. now = time.time() for layer in layers: outpath = os.path.join(os.path.dirname(__file__), 'out', "layer-%3.3fz.png" % layer[0]) surf = get_cairo_surf(outpath) polys = list(layer[1].polys) draw_cairo_polys(polys, surf, (0, 0, 0.5, 1)) for erosion in [0.15, 0.3, .45]: eroded = [poly.buffer(-erosion) for poly in polys] draw_cairo_polys(eroded, surf, (0.2, 2 * erosion, 0.2, 1)) for internal in poly.interiors: draw_cairo_polys(internal, surf, (0.2, 0.2, 2 * erosion, 1)) surf.write_to_png(outpath) print "Generating hires pngs of the sliced/inset layers took %3.3f seconds." % ( time.time() - now)
def test_01_generate_insets(self): """Generate some layers and inset them""" print "\nUltra simple box model, planar inset testing." stl = helpers.get_box() model = Model.from_stl(stl) now = time.time() layers = [ Layer.from_CGAL_intersections(plane[1]) for plane in model.generate_planar_intersections(0, 0.1, 30) if len(plane[1]) ] for layer in layers: eroded_layer = layer.eroded(0.2) for poly in eroded_layer.polys: exterior = tuple(poly.exterior.coords) self.assertEquals(exterior, ((9.8, -9.8), (-9.8, -9.8), (-9.8, 9.8), (9.8, 9.8), (9.8, -9.8))) print "Generating eroded layer planes took %5.5f seconds" % ( time.time() - now)
def test_01_generate_insets(self): """Generate some layers and inset them""" print "\nUltra simple box model, planar inset testing." stl = helpers.get_box() model = Model.from_stl(stl) now=time.time() layers = [ Layer.from_CGAL_intersections(plane[1]) for plane in model.generate_planar_intersections(0, 0.1, 30) if len(plane[1])] for layer in layers: eroded_layer = layer.eroded(0.2) for poly in eroded_layer.polys: exterior = tuple(poly.exterior.coords) self.assertEquals(exterior, ( (9.8, -9.8), (-9.8, -9.8), (-9.8, 9.8), (9.8, 9.8), (9.8, -9.8))) print "Generating eroded layer planes took %5.5f seconds" % (time.time()-now)