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)
Beispiel #2
0
    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)
Beispiel #3
0
    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)