Skip to content

flash2

flash2

Parser level abstraction of flash operation for Gerber AST parser, version 2.

Flash2

Bases: ApertureDrawCommand2

Parser level abstraction of flash operation for Gerber AST parser, version 2.

Source code in src/pygerber/gerberx3/parser2/commands2/flash2.py
class Flash2(ApertureDrawCommand2):
    """Parser level abstraction of flash operation for Gerber AST parser,
    version 2.
    """

    flash_point: Vector2D

    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={
                "flash_point": self.flash_point.get_mirrored(mirror),
                "aperture": self.aperture.get_mirrored(mirror),
            },
        )

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

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

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

    def render(self, renderer: Renderer2) -> None:
        """Render draw operation."""
        self.aperture.render_flash(renderer, self)

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

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/flash2.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={
            "flash_point": self.flash_point.get_mirrored(mirror),
            "aperture": self.aperture.get_mirrored(mirror),
        },
    )

get_transposed

get_transposed(vector: Vector2D) -> Self

Get transposed command.

Source code in src/pygerber/gerberx3/parser2/commands2/flash2.py
def get_transposed(self, vector: Vector2D) -> Self:
    """Get transposed command."""
    return self.model_copy(
        update={
            "flash_point": self.flash_point + 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/flash2.py
def get_rotated(self, angle: Decimal) -> Self:
    """Get copy of this command rotated around (0, 0)."""
    return self.model_copy(
        update={
            "flash_point": self.flash_point.get_rotated(angle),
            "aperture": self.aperture.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/flash2.py
def get_scaled(self, scale: Decimal) -> Self:
    """Get copy of this aperture scaled by factor."""
    if scale == Decimal("1.0"):
        return self
    return self.model_copy(
        update={
            "flash_point": self.flash_point.get_scaled(scale),
            "aperture": self.aperture.get_scaled(scale),
            "transform": self.transform.get_scaled(scale),
        },
    )

render

render(renderer: Renderer2) -> None

Render draw operation.

Source code in src/pygerber/gerberx3/parser2/commands2/flash2.py
def render(self, renderer: Renderer2) -> None:
    """Render draw operation."""
    self.aperture.render_flash(renderer, self)

get_bounding_box

get_bounding_box() -> BoundingBox

Get bounding box of draw operation.

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