Skip to content

buffer_command2

buffer_command2

Parser level abstraction of command that consists of multiple commands for Gerber AST parser, version 2.

BufferCommand2

Bases: Command2

Parser level abstraction of command that consists of multiple commands for Gerber AST parser, version 2.

Source code in src/pygerber/gerberx3/parser2/commands2/buffer_command2.py
class BufferCommand2(Command2):
    """Parser level abstraction of command that consists of multiple commands for Gerber
    AST parser, version 2.
    """

    command_buffer: ReadonlyCommandBuffer2

    def get_mirrored(self, mirror: Mirroring) -> Self:
        """Get mirrored command.

        Mirroring is a NOOP if mirror is `Mirroring.NoMirroring`.
        """
        if mirror == Mirroring.NoMirroring:
            return self
        return self.model_copy(
            update={
                "command_buffer": self.command_buffer.get_mirrored(mirror),
            },
        )

    def get_transposed(self, vector: Vector2D) -> Self:
        """Get transposed command."""
        return self.model_copy(
            update={
                "command_buffer": self.command_buffer.get_transposed(vector),
            },
        )

    def get_rotated(self, angle: Decimal) -> Self:
        """Get copy of this command rotated around (0, 0)."""
        return self.model_copy(
            update={
                "command_buffer": self.command_buffer.get_rotated(angle),
            },
        )

    def get_scaled(self, scale: Decimal) -> Self:
        """Get copy of this aperture scaled by factor."""
        return self.model_copy(
            update={
                "command_buffer": self.command_buffer.get_scaled(scale),
            },
        )

    def get_bounding_box(self) -> BoundingBox:
        """Get bounding box of draw operation."""
        return self.command_buffer.get_bounding_box()

    def render(self, renderer: Renderer2) -> None:
        """Render draw operation."""
        for _ in renderer.hooks.render_buffer(self):
            pass

    def render_iter(self, renderer: Renderer2) -> Generator[Command2, None, None]:
        """Render draw operation."""
        yield from renderer.hooks.render_buffer(self)

    def __len__(self) -> int:
        """Return length of buffered commands."""
        return len(self.command_buffer)

    def __iter__(self) -> Iterator[Command2]:  # type: ignore[override]
        """Iterate over buffered draw commands."""
        yield from self.command_buffer

    def __getitem__(self, index: int) -> Command2:
        """Get item by index from commands."""
        return self.command_buffer[index]

get_mirrored

get_mirrored(mirror: Mirroring) -> Self

Get mirrored command.

Mirroring is a NOOP if mirror is Mirroring.NoMirroring.

Source code in src/pygerber/gerberx3/parser2/commands2/buffer_command2.py
def get_mirrored(self, mirror: Mirroring) -> Self:
    """Get mirrored command.

    Mirroring is a NOOP if mirror is `Mirroring.NoMirroring`.
    """
    if mirror == Mirroring.NoMirroring:
        return self
    return self.model_copy(
        update={
            "command_buffer": self.command_buffer.get_mirrored(mirror),
        },
    )

get_transposed

get_transposed(vector: Vector2D) -> Self

Get transposed command.

Source code in src/pygerber/gerberx3/parser2/commands2/buffer_command2.py
def get_transposed(self, vector: Vector2D) -> Self:
    """Get transposed command."""
    return self.model_copy(
        update={
            "command_buffer": self.command_buffer.get_transposed(vector),
        },
    )

get_rotated

get_rotated(angle: Decimal) -> Self

Get copy of this command rotated around (0, 0).

Source code in src/pygerber/gerberx3/parser2/commands2/buffer_command2.py
def get_rotated(self, angle: Decimal) -> Self:
    """Get copy of this command rotated around (0, 0)."""
    return self.model_copy(
        update={
            "command_buffer": self.command_buffer.get_rotated(angle),
        },
    )

get_scaled

get_scaled(scale: Decimal) -> Self

Get copy of this aperture scaled by factor.

Source code in src/pygerber/gerberx3/parser2/commands2/buffer_command2.py
def get_scaled(self, scale: Decimal) -> Self:
    """Get copy of this aperture scaled by factor."""
    return self.model_copy(
        update={
            "command_buffer": self.command_buffer.get_scaled(scale),
        },
    )

get_bounding_box

get_bounding_box() -> BoundingBox

Get bounding box of draw operation.

Source code in src/pygerber/gerberx3/parser2/commands2/buffer_command2.py
def get_bounding_box(self) -> BoundingBox:
    """Get bounding box of draw operation."""
    return self.command_buffer.get_bounding_box()

render

render(renderer: Renderer2) -> None

Render draw operation.

Source code in src/pygerber/gerberx3/parser2/commands2/buffer_command2.py
def render(self, renderer: Renderer2) -> None:
    """Render draw operation."""
    for _ in renderer.hooks.render_buffer(self):
        pass

render_iter

render_iter(
    renderer: Renderer2,
) -> Generator[Command2, None, None]

Render draw operation.

Source code in src/pygerber/gerberx3/parser2/commands2/buffer_command2.py
def render_iter(self, renderer: Renderer2) -> Generator[Command2, None, None]:
    """Render draw operation."""
    yield from renderer.hooks.render_buffer(self)

__len__

__len__() -> int

Return length of buffered commands.

Source code in src/pygerber/gerberx3/parser2/commands2/buffer_command2.py
def __len__(self) -> int:
    """Return length of buffered commands."""
    return len(self.command_buffer)

__iter__

__iter__() -> Iterator[Command2]

Iterate over buffered draw commands.

Source code in src/pygerber/gerberx3/parser2/commands2/buffer_command2.py
def __iter__(self) -> Iterator[Command2]:  # type: ignore[override]
    """Iterate over buffered draw commands."""
    yield from self.command_buffer

__getitem__

__getitem__(index: int) -> Command2

Get item by index from commands.

Source code in src/pygerber/gerberx3/parser2/commands2/buffer_command2.py
def __getitem__(self, index: int) -> Command2:
    """Get item by index from commands."""
    return self.command_buffer[index]