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."""
        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_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."""
        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.

Source code in src/pygerber/gerberx3/parser2/commands2/buffer_command2.py
def get_mirrored(self, mirror: Mirroring) -> Self:
    """Get mirrored command."""
    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_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."""
    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]