コード例 #1
0
ファイル: tile.py プロジェクト: lapandic/duckietown-world
    def draw_svg(self, drawing, g):
        # rect = drawing.rect(width=1,height=1,)
        # g.add(rect)
        rect = drawing.rect(insert=(-0.5, -0.5),
                            width=1,
                            height=1,
                            fill="#eee",
                            style='opacity:0.4',
                            stroke_width="0.01",
                            stroke="none", )
        # g.add(rect)

        if self.fn:
            # texture = get_jpeg_bytes(self.fn)
            texture = open(self.fn, 'rb').read()
            href = data_encoded_for_src(texture, 'image/jpeg')
            img = drawing.image(href=href,
                                size=(1, 1),
                                insert=(-0.5, -0.5),
                                style='transform: rotate(90deg) scaleX(-1)  rotate(-90deg) '
                                )
            img.attribs['class'] = 'tile-textures'
            g.add(img)
        #
        # if draw_directions_lanes:
        #     if self.kind != 'floor':
        #         start = (-0.5, -0.25)
        #         end = (+0, -0.25)
        #         line = drawing.line(start=start, end=end, stroke='blue', stroke_width='0.01')
        #         g.add(line)

        draw_axes(drawing, g)

        draw_children(drawing, self, g)
コード例 #2
0
    def draw_svg(self, drawing, g):
        T = 0.562 / 0.585
        S = 1.0
        rect = drawing.rect(
            insert=(-S / 2, -S / 2),
            size=(S, S),
            fill='#222',
            stroke="none",
        )
        g.add(rect)

        if self.fn:
            # texture = get_jpeg_bytes(self.fn)
            texture = open(self.fn, 'rb').read()
            href = data_encoded_for_src(texture, mime_from_fn(self.fn))
            img = drawing.image(
                href=href,
                size=(T, T),
                insert=(-T / 2, -T / 2),
                style='transform: rotate(90deg) scaleX(-1)  rotate(-90deg) ')
            img.attribs['class'] = 'tile-textures'
            g.add(img)
        #
        # if draw_directions_lanes:
        #     if self.kind != 'floor':
        #         start = (-0.5, -0.25)
        #         end = (+0, -0.25)
        #         line = drawing.line(start=start, end=end, stroke='blue', stroke_width='0.01')
        #         g.add(line)

        draw_axes(drawing, g)

        draw_children(drawing, self, g)
コード例 #3
0
ファイル: tile.py プロジェクト: csreid/duckietown-world
 def draw_svg(self, drawing, g):
     draw_axes(drawing, g, klass="anchor-axes")
     c = drawing.circle(center=(0, 0),
                        r=0.03,
                        fill="blue",
                        stroke="black",
                        stroke_width=0.001)
     g.add(c)
コード例 #4
0
 def draw_svg(self, drawing, g):
     draw_axes(drawing, g, klass='anchor-axes')
     c = drawing.circle(center=(0, 0),
                        r=0.03,
                        fill='blue',
                        stroke='black',
                        stroke_width=0.001)
     g.add(c)
コード例 #5
0
ファイル: tile.py プロジェクト: csreid/duckietown-world
    def draw_svg(self, drawing, g):
        L = SignSlot.L

        rect = drawing.rect(
            insert=(-L / 2, -L / 2),
            size=(L, L),
            fill="none",
            # style='opacity:0.4',
            stroke_width="0.005",
            stroke="pink",
        )
        g.add(rect)
        draw_axes(drawing, g, 0.04)
コード例 #6
0
    def draw_svg(self, drawing, g):
        T = 0.562 / 0.585
        S = 1.0
        rect = drawing.rect(insert=(-S / 2, -S / 2),
                            size=(S, S),
                            fill="#222",
                            stroke="none")
        g.add(rect)

        if self.fn:
            # texture = get_jpeg_bytes(self.fn)
            with open(self.fn, "rb") as _:
                texture = _.read()
            if b"git-lfs" in texture:
                msg = f"The file {self.fn} is a Git LFS pointer. Repo not checked out correctly."
                raise Exception(msg)
            # print(f'drawing defs {drawing.defs}')

            ID = f"texture-{self.kind}"

            for img in drawing.defs.elements:
                if img.attribs.get("id", None) == ID:
                    break
            else:

                href = data_encoded_for_src(texture, mime_from_fn(self.fn))
                img = drawing.image(
                    href=href,
                    size=(T, T),
                    insert=(-T / 2, -T / 2),
                    style=
                    "transform: rotate(90deg) scaleX(-1)  rotate(-90deg) ",
                )
                img.attribs["class"] = "tile-textures"

                img.attribs["id"] = ID
                drawing.defs.add(img)

            use = Use(f"#{ID}")
            g.add(use)
        #
        # if draw_directions_lanes:
        #     if self.kind != 'floor':
        #         start = (-0.5, -0.25)
        #         end = (+0, -0.25)
        #         line = drawing.line(start=start, end=end, stroke='blue', stroke_width='0.01')
        #         g.add(line)

        draw_axes(drawing, g)

        draw_children(drawing, self, g)
コード例 #7
0
    def draw_svg(self, drawing, g):
        L, W = self.length, self.width
        rect = drawing.rect(
            insert=(-L * 0.5, -W * 0.5),
            size=(L, W),
            fill="red",
            # style='opacity:0.4',
            stroke_width="0.01",
            stroke="black",
        )
        rect.width = "0.1em"
        g.add(rect)

        draw_axes(drawing, g)
コード例 #8
0
    def draw_svg(self, drawing, g):
        from duckietown_world.svg_drawing import draw_axes

        draw_axes(drawing, g)
コード例 #9
0
    def draw_svg(self, drawing, g):
        ID = str(id(self))
        for element in drawing.defs.elements:
            if element.attribs.get("id", None) == ID:
                break
        else:
            template = drawing.g(id=ID)

            L, W = self.length, self.width
            W = 0.11
            Lb = 0.11
            Lf = 0.08
            d = 0.10
            d = 0.12
            wheel_width = 0.027
            wheel_radius = 0.032
            rx_robot = 0.02
            rx_wheel = 0.005
            fancy = True

            if fancy:

                rect = drawing.rect(
                    insert=(-wheel_radius, -d * 0.5 - wheel_width / 2),
                    size=(+wheel_radius * 2, wheel_width),
                    fill="black",
                    stroke_width="0.01",
                    stroke="black",
                    rx=rx_wheel,
                )
                rect.width = "0.1em"
                template.add(rect)
                rect = drawing.rect(
                    insert=(-wheel_radius, +d * 0.5 - wheel_width / 2),
                    size=(+wheel_radius * 2, wheel_width),
                    fill="black",
                    stroke_width="0.01",
                    stroke="black",
                    rx=rx_wheel,
                )
                rect.width = "0.1em"
                template.add(rect)

                rect = drawing.rect(
                    insert=(-Lb, -W * 0.5),
                    size=(Lb + Lf, W),
                    fill=self.color,
                    stroke_width="0.01",
                    stroke="black",
                    rx=rx_robot,
                )
                rect.width = "0.1em"
                template.add(rect)
            else:

                rect = drawing.rect(
                    insert=(-Lb, -W * 0.5),
                    size=(Lb + Lf, W),
                    fill=self.color,
                    # style='opacity:0.4',
                    stroke_width="0.01",
                    stroke="black",
                    # rx=rx_robot,
                )
                template.add(rect)

            drawing.defs.add(template)

        use = Use(f"#{ID}")
        g.add(use)

        draw_axes(drawing, g)